Возможные проблемы безопасности при настройке Access-Control-Allow-Origin

Я вижу, что установка "*" подстановочного знака - это риск безопасности i.e.

Access-Control-Allow-Origin: "*"

Что бы я хотел знать, существует ли риск безопасности при настройке конкретного домена i.e.

Access-Control-Allow-Origin: http://www.example.com

Ответ 1

Заголовки CORS обычно используются для запроса JavaScript AJAX. Браузеры имеют встроенный механизм безопасности, который не позволяет вам запрашивать другие домены, если они явно не позволяют это, установив эти заголовки CORS.

На самом деле не так уж много риска для безопасности. Вы всегда можете отправлять вредоносные запросы. Браузеры просто решили играть хорошо.

Одна вещь, о которой нужно знать, это то, что вы не всегда хотите отправить

Access-Control-Allow-Origin: http://www.example.com

заголовок. Это потенциально может привести людей ко всем доменам, использующим ваш API. Моя рекомендация заключается в том, что вы только генерируете заголовок, если это необходимо, т.е. вы получаете запрос OPTIONS из домена с белым списком.

Я недавно написал сообщение в блоге об этом: http://fritsvancampen.wordpress.com/2013/02/03/cross-site-origin-requests-aka-cross-origin-resource-sharing/