Безопасное размещение и последующая печать тегов JavaScript - PullRequest
4 голосов
/ 28 марта 2012

Я пытаюсь разработать внутреннее приложение для проверки рекламы на PHP.У нас есть много мест, где можно показывать рекламу, и почти у всех из них есть свои уникальные требования (они показываются в играх, поэтому все люди различаются по размеру, весу, формату и т. Д.).Поскольку это может привести к путанице в кампаниях с таргетингом на разные игры (когда агентства отправляют нам рекламу с неправильными форматами), нам нужно проверить каждое объявление, чтобы убедиться, что оно работает должным образом.

Приложение работает нормально, еслинаши клиенты отправляют нам файл объявлений для проверки.Но большую часть времени они отправляют теги Adserver, чтобы они могли отслеживать результаты, и эти теги обычно являются тегами javascript и iframe.

Проблема заключается в том, как безопасно разрешить вставку кода javascript и iframeи отобразить это на странице на странице обратной передачи (для визуальной проверки) во всех браузерах, не рискуя проблемами XSS?

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

Спасибо.Дечио

1 Ответ

0 голосов
/ 01 июня 2012

Если вы включаете сторонний код JavaScript, вы всегда рискуете XSS. Допустим, вы тестируете код от рекламодателя:

<script src="http://some3rdPartySite.com/script.js"></script>
  1. Скрипт может быть изменен, чтобы отображаться и вызывать различные результаты в целевом домене и на всех других страницах. То есть вы можете видеть, как он хочет вас показать, но вы не можете быть уверены, что в некоторых играх вашего клиента он будет таким же.
  2. Поставщик рекламы может изменить скрипт на своем сервере в любой момент, возможно, после ваших тестов.

Если вы не доверяете своим рекламным поставщикам, я предлагаю им выбрать изображение + URL или iframe URL + размеры. Вы также можете делать «плохие вещи» с помощью Iframe (например, перебор кадров, перенаправляя их со страницы клиента), но вы все равно должны соблюдать междоменную политику. Это не тот случай, если вы разрешите выполнение кода JavaScript.

Вы также можете предоставить собственную аналитику для поставщиков рекламы, чтобы удовлетворить их потребности.

В любом случае, для тестирования результатов javascript вы можете использовать драйверы Selenium с любым браузером: http://seleniumhq.org/. Это позволит вам загрузить любую страницу, выполнить код javascript и получить результаты. Таким образом, вы можете загрузить свой код JavaScript, найти DOM для узлов и проверить их размеры и т. Д.

Также вы можете посмотреть на сахи: http://sahi.co.in/w/

...