Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 10

Наивный вопрос по примеру атаки. Если пользователь сидит на странице evil.com, то почему браузер отправляет куки, полученные на странице bank.com? Может быть, изначально беда именно в этом?

Куки можно не отсылать (как и делается в том же fetch без credentials: "include"), но этого недостаточно. Пользователь может находиться во внутренней сети и иметь доступ к каким-то ресурсам, недоступным снаружи, сайт злоумышленника не должен уметь забирать оттуда какие-либо данные, даже без кукисов.

То есть fetch без чужих куков пойдёт только если JS на сайте evil.com написан честным человеком? Чё-то ржу.

Правильно ли я понимаю, что весь этот "горячо любимый" всеми веб-разработчиками CORS это кривой костыль, которым попытались пофиксить этот косяк?

fetch без чужих куков пойдёт, если не указать credentials: "include". Иначе пойдет с куками. Но в любом случае ответ сервера будет передан запросившему его js-коду, только если сервер снабдил свой ответ необходимыми заголовками (причем для запроса с куками заголовков должно быть больше). От честности автора тут ничего не зависит.

Я бы не назвал это костылем. Просто изначально были ограничения на "одинаковый origin", а спустя несколько лет добавились цивилизованные средства их обхода с согласия сервера. До этого был JSONP, который действительно костыль.

Но ведь человек с evil.com не забудет прописать credentials: "include", правда ведь?

Ещё один вопрос. CORS он для защиты только от этой беды с кукисами, или там есть и другие сценарии атаки?

чтобы куки пошли, надо чтобы и bank разрешил и evil прописал. Одного желания evil не достаточно. Bank - или запрещает все поползновения не от bank, или разрешает только явно тем, кому он хочет разрешить.

Такие костыли разной степени кривости есть не только в ИТ.

Например в интернет-банкинге проверка по протоколу 3DS, так горячо рекламируемая банками, будет работать только если продавец включил ее у себя в магазине.

Да — не банк, не покупатель, а продавец.

Таким образом если продавец мошенник, вся эта любовно нагороженная система безопасности даже не включится...

Скрытый текст

У куки есть SameSite атрибут, который позволяет настраивать, какие куки могут отправляться с запросом, исходя из источника запроса. Но это сильно позже появилось чем Access-Control-Allow-Origin, и не является заменой, скорее еще одна из мер защиты.

Например, на сайте comments-from-vk.com выводится блок с комментариями пользователя из ВК (или с возможностью оставить комментарий от лица пользователя ВК). В таком случае куки необходимы, чтобы ВК мог отдать данные о профиле пользователя, например, или чтобы comments-from-vk.com знал, какой пользователь ВК оставил комментарий

С первых же строк видно непонимание темы самим автором.

3.Код, полученный с сайта evil.com, заставляет ваш браузер тайно отправить запрос Get /api/account на bank.com.

Ну и все признаки текста, сгенерированного ИИ. Печально.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации