首先也是最危险的 xss (?) 是 flash 可以读取您的 DOM……不要在用户可以输入他/她的登录数据的页面上嵌入视频。登录表单应该分开。
通常闪存嵌入使用类似于以下内容的代码:
YouTube:
<object width="425" height="350">
<param name="movie" value="http://www.youtube.com/v/AyPzM5WK8ys" />
<param name="wmode" value="transparent" />
<embed src="http://www.youtube.com/v/AyPzM5WK8ys"
type="application/x-shockwave-flash"
wmode="transparent" width="425" height="350" />
</object>
视频:
<object width="400" height="225">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10239065&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id=10239065&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed>
</object>
<p><a href="http://vimeo.com/10239065">La Fete (HD - 2010)</a> from <a href="http://vimeo.com/animalcolm">Malcolm Sutherland</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
元咖啡馆:
<embed src="http://www.metacafe.com/fplayer/4317045/bmx_face_slide.swf" width="400" height="345" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" name="Metacafe_4317045"> </embed>
<br><font size = 1><a href="http://www.metacafe.com/watch/4317045/bmx_face_slide/">BMX Face Slide</a> - <a href="http://www.metacafe.com/">Free videos are just a click away</a></font>
启用嵌入内容的最佳解决方案是从可以使用的样本中去除嵌入、参数、对象和属性列表的例外标签。
请记住,某些属性可以运行 javascript 代码以及锚的 href...
编辑:
在 src 和 param 的 value 属性中只允许受信任的站点是防止 hAx0rs 做坏事的好方法,但它并非完美无缺。另一件大事:阅读有关 allowScriptAccess 的更多信息。它是一个 Param 的属性,您应该删除或设置为 sameDomain / never。它将阻止 SWF 运行 javascript :)