Comments 16
Натерпелся я в свое время с ним, пока неопытный был
Firefox: https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/
Chrome: https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf
А потом, нпр. если Apache:
Header set Access-Control-Allow-Origin "*"
в /etc/apache2/sites-available/000-default.conf
Если делаем React/Next/… итд, a back-end на «каком-то-там-нашем» сервере, то по любому будет CORS головная боль. Back-end там, а сайт (Node) на нашей машине (localhost). Чистой воды CORS. Плагины помогают это превзойти на стадии разработки, пока не залили front-end на наш сервер.
Если и впредь будет Cross Origin, то только настройки веб сервера.
Перед любым запросом, отличным от GET, предварительно отправляется OPTIONS-запрос, и если в его ответе не прилетело разрешение на выполнение запроса, то реальный запрос отправлен не будет, так что CSRF уязвимости здесь нет. И об этом в посте даже написано
К простым запросам относятся: методы GET/POST/HEAD c content-type text/plain, application/x-www-form-urlencoded, multipart/form-data.
developer.mozilla.org/ru/docs/Web/HTTP/CORS
Ошибка: к 3-им лицам.
Правильно: к третьим или, на худой конец, к 3-м.
Пока не мог решить проблему с CORS пользовался проксированием запросов через nginx на локальной машине, но только как временное решение
самое важное что должно быть сказано про CORS - это то, что эти инструкции лишь для браузеров. и лишь рекомендательные. просто браузеры им следуют.
а на по факту уровне HTTP - можно делать любые запросы всегда. создайте свой браузер (или некий хедлесс условно функционал) - и спокойно игнорьте все заголовки и делайте любые запросы, которые вы распарсите с того HTML кода, который получили от клиента/источника.
CORS для чайников: история возникновения, как устроен и оптимальные методы работы