В чем смысл crossdomain.xml и clientaccesspolicy.xml, когда есть, например, PHP / cURL?

Допустим, у меня есть сайт, но на нем нет crossdomain.xml или clientaccesspolicy.xml.

Это означает, что люди не могут получить доступ к моему сайту через приложения Silverlight или Flash.

Но они могут использовать, скажем, cURL в PHP (или эквивалент на других языках), чтобы получать информацию с моего сайта и предоставлять ее своим приложениям Silverlight и Flash через REST или WebService и т. Д.

  • Может кто-нибудь объяснить, как именно эти ограничения защищают мой сайт, например из междоменного скриптинга?

  • От чего они защищают то, что нельзя сделать с помощью PHP / cURL и эквивалентов, которые действительно имеют доступ к моему сайту через скрипт?


person Edward Tanguay    schedule 25.02.2009    source источник


Ответы (1)


PHP - это серверная технология, и код выполняется на сервере, а не на машине пользователя. Silverlight - это технология на стороне клиента, работающая на компьютере пользователя.

Если бы код Silverlight мог делать произвольные веб-запросы к любому домену, это открыло бы дверь для целого ряда атак межсайтового скриптинга.

Представьте этот сценарий:
Боб заходит на www.OnlineBanking.com и входит в систему, чтобы проверить баланс своего счета. Он покидает этот сайт, перейдя по другому адресу. Он не нажимает «Выйти», поэтому он все еще находится в системе (в качестве альтернативы, он открывает новое окно / вкладку браузера, оставляя банковский сайт открытым).
Боб переходит на evil.com, который содержит приложение Silverlight .
Приложение Silverlight загружается и запускается на машине Боба.
Это приложение делает веб-запрос к www.OnlineBanking.com/secretaccountdetails.html. Этот файл требует аутентификации для чтения (evil.com не аутентифицирован, поэтому не может получить к нему доступ).
Боб, однако, ИДЕТ аутентифицирован, и запрос выполнен успешно. Приложение silverlight может читать содержимое этого файла и делать с ним все, что угодно (включая отправку на evil.com).

Ограничения междоменных запросов в Silverlight предотвращают описанный выше сценарий. Когда приложение silverlight делает запрос к OnlineBanking.com, оно проверяет наличие файла междоменной политики, поскольку приложение обслуживается из другого домена. Поскольку OnlineBanking.com не имеет файла политики, разрешающего междоменные запросы, запрос не выполняется, и приложение Silverlight не может загрузить secretaccountdetails.html.

person KeithMahoney    schedule 25.02.2009