CORS
CORS (Cross-Origin Resource Sharing) — механика веб-обозревальников, которая не позволяет своровать произвольные данные из иного источника, так как подобным образом разные вредители могут накачивать сайт вредоносным образом.
Описание[править]
Изначально безопасность браузеров работала за счёт строгой изоляции контента с разных доменов. Политика одного источника, радостно восранная в 1995 году в Netscape Navigator 2.0, запрещала жабьему коду с одного домена обращаться к данным другого домена. Тем самым предотвращалось некачественное жужжание, которое могло спокойно привести к взлому сайта.
Но для сложных и потужных сайтов появилась надобность и возникла потребность в правильном обмене данными между различными доменами. Вначале разработчики использовали костыли, например всирали JSONP, докукарекивали iframe-трюки и применяли серверные прокси.
CORS был восран в 2009, как раз когда начинались сильные веб-приложения.
Работает всё весьма просто. Когда веб-приложение пытается выполнить межсайтовый запрос, браузер автоматически добавляет к запросу заголовок Origin, указывающий источник запрашивающей страницы. Сервер, получив запрос, может разрешить или запретить доступ, включив в ответ соответствующие CORS-заголовки.
Также система позволяет разделять простые запросы и нестандартные. Простыми считаются запросы с опрощённым вариантом запрашивания: используется метод GET, HEAD или POST; включаются только простые заголовки типа Accept, Accept-Language, Content-Language, Content-Type с ограниченными значениями; если используется Content-Type, он должен быть application/x-www-form-urlencoded, multipart/form-data или text/plain. Непростыми считаются все остальные запросы, для которых делается специальная многофакторная проверка.