JS в заголовке изображения с помощью галереи Fancybox - PullRequest
0 голосов
/ 15 июня 2011

Я использую fancybox (лайтбокс, как js popup library), чтобы показать фотографию и ее заголовок во всплывающем окне. Фотографии загружаются пользователем с указанным названием. Я также избежал заголовка фотографии при отображении фотографии в формате HTML. HTML-теги просты как:

<a href="/files/909221123.large.JPG" title="sample image &lt;script&gt;alert('test')&lt;/script&gt;"><img src="/files/909221123.medium.JPG"></a>

Как видите, тег js в заголовке экранирован. Тем не менее, он работает независимо от отображения во всплывающем окне fancybox - я нажимаю на фотографию, которая вызывает всплывающее окно с предупреждением js, затем всплывающее окно fancybox с фотографией.

Это точно проблема XSS, но я подумал, что это так очевидно, и у fancybox не должно быть этой проблемы сорта. Я сделал что-то не так здесь? и как это исправить?

спасибо.

1 Ответ

0 голосов
/ 15 июня 2011

Похоже, Fancybox рассматривает эту строку как HTML вместо текста.

Вы можете взломать плагин. Есть код, который обрабатывает заголовок, такой как ...

return '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' + title + '</td><td id="fancybox-title-float-right"></td></tr></table>'

Как видите, к тому времени, когда title уже существует, его сущности уже разрешены.

В противном случае вы можете удалить части строки, которые выглядят как HTML-теги с регулярным выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...