2012-01-16 6 views
3

Я разрешаю пользователям встраивать YouTube или любой другой источник видео, прося их отправить src код вставки, который они получают. Затем я сохраняю его в базе данных и загружаю его через iframe. Однако f есть источник, например, src="http://innocent.com/hackingContent.php", а затем мой сайт непримирим к атаке xss?xss-атака через iframe src

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

EDIT Что делать, если src содержит <script type="text/javascript" src="evilScript.js"></script>. Хотя я утра, используя preg_match, чтобы убедиться, что его URL-адрес только.

ответ

6

Да, вы уязвимы. Что предотвращения плохой пользователю ссылки на порно? Или сайт, который выглядит законным и собирает имена пользователей и пароли.

Почему вы не строите белый список источников видео, которые вы принимаете? ... проверенные отправленные URL-адреса находятся в этих доменах и подтверждают, что URL-адрес существует.

Таким образом, люди не могут вставлять абсолютно произвольные URL-адреса в ваш контент.

«Белый список» - это список значений, которые вы примете. Например, на сервере, когда пользователь отправляет URL, вы бы принять что-либо от

http://www.youtube.com ....

права? Таким образом, вы составляете список всех URL-адресов, которые вы примете, а затем убедитесь, что вход пользователя соответствует элементу из вашего списка. Если вы этого не отвергаете. (Под матчем мы подразумеваем «начинается с» или что-то в этом роде - явно не точное совпадение)

«Черный список» будет обратным. У вас будет список, но его список вещей, которые вы не допустит.

Белого список == Список вещей, которые вы позволили
Черного список == Список вещей, которые вы не позволяете

+0

Вы имеете в виду использование библиотеки 'curl' для проверки URL? – jmishra

+0

что-то в этом роде. Вы также можете загрузить контент и обработать его на своем сервере, чтобы убедиться, что он является законным. – hvgotcodes

+0

Говоря о том, что, когда вы говорите «белый список источников видео», это отличается от iframe. Как это работает? Было бы полезно, если бы вы могли объяснить это в своем ответе. – jmishra

1

Нет, если iframe src отличается от домена, который вызывает указанный iframe, вы защищены от атак XSS. Это соответствует Политика происхождения в одном домене.

+3

Функции Iframe 'src' может быть' JavaScript: ... ', который будет выполняется в контексте содержащего окна. – Esailija

+0

Большое спасибо Дэвиду. Итак, вы говорите, что если я загружаю 'http: // innocent.com/hackingContent.php' через iframe в' example.com/goodContent.php', то это не проблема? – jmishra

+0

, если он разрешает любой URL-адрес, у кого-то все еще может быть скрытый контент через его сайт ... правильно? – hvgotcodes

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