質問: webページのセキュリティについて質問です。 ユーザに対してWYSIWYGエディタを提供して、一部のHTML要素をホワイトリストで許可しようと考えています。テキスト装飾関連とimg要素・a要素を許可する予定です。 それに加えてYouTubeのコード埋め込みも実現したいのですが、object要素param要素やembed要素を許可すると、XSSやCSRFなどのリスクがあるでしょうか?
回答: それはやはり無視できませんね... objectは意外と万能タグなので... objectはiframeとほぼ同様の動作も実現できてしまいますし、swfファイルの読み込みにも使われます。 一番よいと思われるのは、存在しない独自形式タグを自動で置き換えるような形だと思います。 たとえば、<> を自動でYouTube埋め込みようタグに変換する、等。 テンプレートにjavascriptを組み込んでおくなどでも良いかと。 ただただ既にある要素を許可、禁止にしているだけでは危険かもしれませんね...