vollossy
@vollossy
Веб-разработчик с небольшим опытом работы

Зачем нужен cors?

Возникла давеча дискуссия. Зачем этот самый CORS нужен, ведь по сути он позволяет js-коду отправлять данные на какой угодно сервер и этот сервер в свою очередь уже принимает решение, брать эти данные или нет. Т.е. это все равно, что подойти к незнакомому мужику на улице и сказать "Вот номер и пин моей карты: хххххххх"
  • Вопрос задан
  • 9924 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
1. JS и так может отправить данные куда угодно, GET запросом, например.
2. CORS нужен для того, чтобы разрешить КЛИЕНТУ (браузеру) принять некоторые виды ресурсов.

Традиционно браузер может подключить картинки, iframe, скрипты и флеш с других доменов, но не может использовать ajax или web fonts, если на сервере этот домен не внесен в список Access-Control-Allow-Origin.

UPD: Дополню, а то судя по комментариям, некоторые люди имеют искаженное представление о CORS.

Для начала стоит понять, что cors - это способ обхода same origin policy

Когда-то давно, еще во времена win95, с целью усложнения xss и фишинга, Netscape ввел ограничения для скриптов, исполняемых в браузере. Чуть позже подтянулись и другие браузеры.

Если на пальцах, то работает оно так: Василий открыл интернет магазин "окна, балкон, дешево, без смс" и вставил iframe-виджет от пейпала, например. И same origin защищает этот iframe, Васины скрипты не могут повлиять на его содержимое.
То-же самое в другую сторону - сайт поставил себе левый информер в iframe, и скрипты этого информера не могут повлиять на основной сайт.

Иногда бывает ситуация, когда нужно подключать какие-то ресурсы со своих-же поддоменов или с доменов партнеров. И если вам нужен доступ к этим ресурсам, вы используете cors чтобы отменить same origin.

В любом случае, cors - всего-лишь дополнительные заголовки отдаваемые сервером. Они никак не помешают "третьим лицам" получить доступ к этим ресурсам. В крайнем случае их можно wget-ом выкачать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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