В чем смысл crossdomain.xml и clientaccesspolicy.xml, когда есть, например, PHP / cURL?
Итак, предположим, у меня есть сайт, и у меня нет crossdomain.xml или clientaccesspolicy.xml на нем.
Это означает, что люди не могут получить доступ к моему сайту через приложения Silverlight или Flash.
но они могут использовать, скажем, cURL в PHP (или эквивалент на других языках), чтобы получить информацию с моего сайта и предоставить ее своим приложениям Silverlight и Flash через REST или WebService и т. д.
может кто-нибудь объяснить, как именно эти ограничения защищают мой сайт, например, от междоменных сценариев?
что они защищают от того, что не может быть сделано с PHP / cURL и эквивалентами, которые do иметь доступ к моему сайту через скрипт?
1 ответов
PHP-это серверная технология, и код выполняется на сервере, а не на машине пользователя. Silverlight-это клиентская технология, которая работает на компьютере пользователя.
Если код Silverlight может делать произвольные веб-запросы к любому домену, он откроет дверь для целого ряда атак межсайтовых сценариев.
изображение этого сценария:
Боб идет к www.OnlineBanking.com и регистрируется, чтобы проверить баланс счета. Он покидает этот сайт, перейдя на разные адреса. Он не нажимает "выйти", поэтому он все еще входит в систему (в качестве альтернативы он открывает новое окно/вкладку браузера, оставляя банковский сайт открытым).
Боб браузес evil.com, который содержит приложение Silverlight.
Приложение Silverlight загружается и запускается на компьютере Боба.
Это приложение делает веб-запрос на www.OnlineBanking.com/secretaccountdetails.html - ... Этот файл требует аутентификации для чтения (evil.com не аутентифицируется, поэтому не может доступ к нему.)
Однако Боб!--10-->и проходит проверку подлинности, и запрос выполняется успешно. Приложение silverlight может читать содержимое этого файла и делать с ним все, что угодно (включая отправку evil.com).
ограничения междоменного запроса в Silverlight предотвращают выполнение вышеуказанного сценария. Когда запрос сделан приложением silverlight для OnlineBanking.com, он будет проверять наличие файла политики кросс-домена, так как приложение было подано из другого домен. С тех пор OnlineBanking.com не имеет файла политики, разрешающего междоменные запросы, запрос завершается ошибкой, и приложение Silverlight не может загрузить secretaccountdetails.формат html.