Комментарии 10
Я правильно понял, что для получения ответа на запрашиваемом сайте должен быть «Access-Control-Allow-Origin: *»? Вроде как все верно. Но я вот не пойму, я сейчас сделал прямо отсюда $.get(); на разные популярные сайты и везде
XMLHttpRequest cannot load http://***/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://habrahabr.ru' is therefore not allowed access.
Каким образом тогда проходят эти атаки?А никаким. Автор чрезмерно драматизирует.
Если бы то, что описано в статье, было возможно, у всех были бы уже поломаны домашние точки доступа, умные телевизоры и кофеварки, принтеры и DSL-модемы.
Если бы то, что описано в статье, было возможно, у всех были бы уже поломаны домашние точки доступа, умные телевизоры и кофеварки, принтеры и DSL-модемы.
CORS для get запросов обходятся через вставку в src img, srcipt, iframe и тд, например таким образом работает аналитика. Получение контента из img, iframe соответсвует политикам безопасности, для img CORS работает, у iframe может свои политики. Для ajax запросов CORS также работает. Насколько я понял из статьи для обхода CORS нужно выставлять `Access-Control-Allow-Origin: *` для урлов которые не должны быть доступны с других сайтов, чтобы ты был подвержен данной уязвимотси, те прицелиться себе в ногу и выстрелить. Если бы CORS так легко можно было бы обойти, то это сильно подорвало личную информацию в интернетах. CORS отличная штука и позволяет избавляться от костылей например как JSONP.
Access-Control-Allow-Origin: * для withCredentials=true указать нельзя.
Звездочка запрещена в данном случае CORS.
Нужно явно перечислять домены. Поэтому не понимаю истерику автора.
Звездочка запрещена в данном случае CORS.
Нужно явно перечислять домены. Поэтому не понимаю истерику автора.
Именно так.
Разве что, насколько я знаю, хорошей практикой считается не перечислять домены, а аутентифицировать запрос по заголовку
Разве что, насколько я знаю, хорошей практикой считается не перечислять домены, а аутентифицировать запрос по заголовку
Origin
. Если Origin
свой, в ответ в Access-Control-Allow-Origin
отправляем содержимое Origin из запроса. В противном случае не отправляем Access-Control-Allow-Origin
вообще.А почему не как перевод оформили?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Атаки HTML5: что нужно знать