Чем опасно указывать Access-Control-Allow-Origin: * (разрешить доступ к ресурсу из любого источник) на сервере?

Есть платежная система, запросы на создание платежей осуществляются по API.
Её документация написана под .php, но я знаю JavaScript и пробую отправлять XMLHttpRequest/Fetch запросы, при этом ловлю ошибку:
"No 'Access-Control-Allow-Origin'

На сейчас я вижу 2 варианта:
1. Поднять свой прокси сервер для обхода CORS. Запросы уходя на прокси, прокси отправляет запрос на сервер и получает ответ к которому добавляет Access-Control-Allow-Origin и присылает браузеру. (этот вариант рабочий, тестил на общедоступном прокси серваке).
2. Написать в поддержку платежной системы и попросить добавить Access-Control-Allow-Origin: *

Вопрос:
1. Какие минусы у первого варианта?
2. Чем опасно для платежной системы разрешить доступ к ресурсу из любого источника согласно 2 варианта?
3. Возможно ли внесение правок с их стороны или меня проигнорируют?

Если Access-Control-Allow-Origin: * небезопасный метод, почему в таком случае его так легко обойти через прокси?
  • Вопрос задан
  • 681 просмотр
Пригласить эксперта
Ответы на вопрос 3
@balamyt92
; select * from users; --
2. Чем опасно для платежной системы разрешить доступ к ресурсу из любого источника согласно 2 варианта?


Тем что это открывает кучу возможностей для простейшего XSS, фишинга и всех вытекающих проблем. Платежная система не может себе такого позволить.

3. Возможно ли внесение правок с их стороны или меня проигнорируют?


Над вами посмеются, попадёте в юмористическую подборку "клиент хочет странного" во внутренней рассылке.

1. Какие минусы у первого варианта?


Ну это уже ваш ресурс и его уязвимости.
Ответ написан
profesor08
@profesor08
2. Написать в поддержку платежной системы и попросить добавить Access-Control-Allow-Origin: *

Сначала спросить есть ли у них такой функционал, возможно ты не туда смотришь. А если нет, то предложить добавить настройку для этого дела, чтоб можно было указать список разрешенных доменов.

Поднять свой прокси сервер для обхода CORS

Если первый вариант не прокатит, то можно отсылать запросы на свой php скрипт, который будет слать запросы в платежку через curl.

Либо заморочиться с отдельным прокси.
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Если методы API предназначены для взаимодействия сервер-сервер - то и дёргать их нужно на стороне сервера в PHP-скрипте вашем, а не выносить это на клиент. Если платёж создадите на стороне клиента - то как потом ваш сервер удостоверится, что оплата там действительно была?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы