Межсайтовый скриптинг (XSS) - PullRequest
0 голосов
/ 06 августа 2009

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

  1. Когда я использую iframe, поскольку контент из другого домена, контент iframe становится недоступным.
  2. Когда я использую ajax и пытаюсь внедрить содержимое в виде обычного HTML-кода, объект XmlHttpRequest выдает исключение из-за отсутствия разрешения из-за межсайтового скриптинга.
  3. Когда я использую JSONP, например, getJSON в JQuery, он поддерживает только протокол GET и не подходит для дальнейшей обработки.

Интересно, какие еще варианты я могу попробовать? Слышал, что DOJO, GWT, Adobe Air делают XSS, но не знаю, какой из них лучший.

Спасибо, Эбе.

Ответы [ 3 ]

3 голосов
/ 06 августа 2009

Без JSON-P ваш единственный вариант - запустить прокси-скрипт на вашем собственном сервере, который извлекает контент с внешнего сайта и передает его обратно в браузер.

Браузер извлекает содержимое из сценария на вашем сервере, следовательно, никаких междоменных проблем нет, но сценарий на вашем сервере динамически извлекает его с внешнего сайта.

Вот пример такого скрипта в PHP здесь: http://www.daniweb.com/code/snippet494.html (NB. Я лично не использовал его).

1 голос
/ 04 мая 2010

Если у вас есть контроль над обоими доменами, взгляните на EasyXDM . Это библиотека, которая обволакивает кросс-браузерные особенности и предоставляет простой в использовании API для взаимодействия в клиентском скрипте между различными доменами, используя наилучший доступный механизм для этого браузера (например, postMessage , если доступно, другие механизмы, если нет ).

Предупреждение: вам нужно иметь контроль над обоими доменами, чтобы заставить его работать (где «контроль» означает, что вы можете размещать статические файлы на обоих из них). Но вам не нужно никаких изменений кода на стороне сервера.

0 голосов
/ 06 августа 2009

Чтобы добавить к тому, что говорит RichieHindle, есть хороший скрипт (Python + Cron), который вы можете подключить на своем сервере, и он проверит изменения в расположении POST / GET и кеширует изменения на вашем сервере.

Либо установите свои триггеры низкими (один раз каждые 10 минут / 1 в день), либо вы можете попасть в черный список от цели.

Таким образом, локальный кеш не будет вызывать накладные расходы HTTP при каждом вызове AJAX от клиента.

...