使用fancybox gallery的图像标题中的js

时间:2011-06-15 04:17:15

标签: fancybox

我正在使用fancybox(像js popup库这样的灯箱)在弹出窗口中显示照片及其标题。用户使用提供的标题上传照片。当我用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 :(得分:0)

听起来像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标记的字符串部分。

相关问题