Pull to refresh

Comments 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-модемы.
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.
Нужно явно перечислять домены. Поэтому не понимаю истерику автора.
Именно так.
Разве что, насколько я знаю, хорошей практикой считается не перечислять домены, а аутентифицировать запрос по заголовку Origin. Если Origin свой, в ответ в Access-Control-Allow-Origin отправляем содержимое Origin из запроса. В противном случае не отправляем Access-Control-Allow-Origin вообще.
В редакторе остался чекбокс «обучающий материал», а «перевод», похоже, убрали. Если подскажете, как пометить переводом — буду благодарен.
Попробуйте кликнуть на "пост" в «Хочу опубликовать пост».
Sign up to leave a comment.