CSRF это защита при работе с сайтом из браузера!
Если же вы работаете из вашего языка программирования, вашей платформы и т.п. то вы можете установить у запросов все необходимые куки и идентификатор сессии, которые возьмите из браузера, зайдя на оригинальный сайт.
Ну и общее - проблемы, которые создает вам сайт это проблемы заказчика, пусть он решает их так как ВАМ удобно.
Если честно я не вижу проблемы, решение я описал выше
Только вот тут не запросы фиксить надо, а ответы )) Надо чтобы бэкенд принимающий запросы разрешил кроссдоменные запросы. Куки и хэдеры с клиента не спасут.
При выполнении CSRF атакущий имеет возможность передать запрос серверу с помощью браузера пользователя
Т.е. речь идет именно о том что запросы идут от браузера пользователя, где на атакуемый сайт уже заведены куки с сессией авторизации.
Так как топиккастеру нужно автоматическими средствами брать данные с сервера и заливать их на новый, идет классическая подделка запросов - заходим на сайт как легитимный пользователь в режиме логирования сетевых запросов (F11 - закладка network - start) смотрим какой запрос выполнился, нажимаем на нем правую кнопку и копируем в буфер готовую команду например curl с забитыми полями куками и реферером.
rPman, нужные куки отправляются после того, как я добавил в axios withCredentials: true, но всё равно приходит CSRF alert. Может нужно, чтобы сервер установил Access-Control-Allow-Origin не в *, а строго в localhost:3000?
это особенность уровня безопасности в браузерах, защищающая от сайтов злоумышленников, чтобы они не выполняли в тихушку скрытно запросы под вашим логином на сторонних сайтах.
С некоторыми оговорками, вы можете игнорируя CORS делать GET запросы но в любом случае для этого должа быть поддержка от разработчика вебсайта.
Так что селяви, только если вам это разрешить администратор
lil_web, мелочь, попросите выдать права на какой-нибудь домен, даже не существующий, для красоты пусть это будет какой-нибудь поддомен третьего уровня (кстати это можно проверить, может заработает без каких либо донастроек), типа devtest.mysite.com
Вы же в свою очередь прописываете локально в hosts (c:\windows\system32\drivers\etc\hosts открывать под администратором это текстовый файл) куда-нибудь строчку вида 127.0.0.1 devtest.mysite.com
и работаете локально уже не с localhost а с devtest.mysite.com (в некоторых случаях нужно в настройках вашего локального веб сервера прописать этот же devtest.mysite.com но обычно не требуется)
владелец должен добавить в настройки cors.txt что то типа этого:
Access-Control-Allow-Origin: devtest.mysite.com
вполне возможно что у него там уже стоит *.mysite.com (так делают если уже сайт мультидоменный) тогда ничего менять не понадобится.
rPman, я решил проблему! У меня не получилось сделать, что вы предлагаете, но я пообщался с командой, и оказалось, что на сервере в файле разрешается доступ к АПИ для запросов со специальным Origin. Я попросил добавить определённый параметр с Referer, чтобы мог работать на локалке. Всё равно спасибо вам за помощь. Ура!