2012-05-31 1 views
5

Я немного поработал над работой над политикой перекрестного домена, и теперь я знаю о двух способах, которые будут работать для меня, но я изо всех сил пытаюсь понять, как CORS безопаснее, чем вообще не иметь ограничений на кросс-домен.Как CORS безопаснее, чем никаких ограничений в перекрестном домене? Мне кажется, что его можно использовать злонамеренно.

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

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

Я уверен, что я что-то неправильно понял, может кто-нибудь уточнить?

ответ

4

Я думаю, что @dystroy имеет точку там, но не все то, что я искал. Этот ответ также помог. https://stackoverflow.com/a/4851237/830431

Теперь я понимаю, что это не имеет никакого отношения к предотвращению отправки данных и больше относится к предотвращению несанкционированных действий.

Например: сайт, на котором вы вошли в систему (например, в социальной сети или в банке), может иметь доверенный сеанс с вашим браузером. Если вы затем посетите хитроумный сайт, они не смогут совершать атаки с использованием межсайтового сценария, используя сайты, на которые вы вошли (например, публикуйте обновления состояния спама, получите личные данные или переведите деньги со своего аккаунта) из-за кросс-домена. Единственный способ, с помощью которого они могли бы выполнить эту атаку по сценарию межсайтового сценария, будет, если браузер не включил ограничение на кросс-сайт, или если социальная сеть или банк внедрили CORS для включения запросов из ненадежных доменов.

Если сайт (например, банк или социальная сеть) решает внедрить CORS, то он должен быть уверен, что он не может привести к несанкционированным действиям или неавторизованным данным, которые будут извлечены, но что-то вроде информационного контента веб-сайта новостей или yahoo-труб нечего терять, позволяя CORS на *

3

Вы можете установить более точный фильтр происхождения, чем «*».

Если вы решите открыть свою конкретную страницу для включения в другую страницу, это означает, что вы будете обрабатывать последствия.

Но главная проблема не в том, что сервер может получать странные данные: это ничего нового: все, что получено сервером, является подозрительным. Защита в основном предназначена для пользователя, который не может быть подвергнут злоупотреблениям из-за ненормального состава источников (например, у ангелов, которые могут считывать данные, записанные на основе ангелов). Поэтому, если вы разрешаете все происхождение для страницы, не помещайте внутренние данные, которые вы хотите использовать только с вашим пользователем.

+0

Что такое englobing? – Grezzo

+0

Я имел в виду включение. Извините за мой плохой английский. –

Смежные вопросы