最初で最も危険なxss(?)は、フラッシュが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>
Vimeo:
<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が悪いことをするのを防ぐための良い方法ですが、欠陥ではありません。もう1つの重要な点は、allowScriptAccessの詳細を読むことです。そのParamの属性は、削除するか、sameDomain/neverに設定する必要があります。SWFがjavascriptを実行するのを防ぎます:)