RDPってなんですか?

情報セキュリティ技術の面白さやカッコよさを伝えられるように頑張ります

element.innnerHTMLのscriptタグの処理とXSS

どうもshuu_miyakoです。

 

 最近徳丸本を見返していた時に、dom型XSSのページに当時書いたこんなメモを見つけました。

「なんでimg要素でXSS発生するのに、script要素だと発生しないの?」

 

徳丸本の中ではinnerHTMLによるDOM Based XSSの章ではフラグメントに挿入するコードとしてimg要素でonnerrorでaler文を発生させるものを例にあげています。

 

実際にscript要素使用した場合は発生しなかったので、自分は上記のようなメモを残したのでしょう。

 

ではなぜinnerHTMLにscript要素を挿入してもalert文が発生しないかと言うと、仕様上そうなっているからです。

 

なんとなく納得しづらいかと思いますが、そういうものらしいです。

このことは実は徳丸本でも該当箇所の2ページ後にも記載があります。

 

自分は3分ぐらい納得できませんでしたので、公式ドキュメントとかないかなと探してみました。

そうしたら普通にありました。

 

①MDN web Docs

developer.mozilla.org

f:id:shuu_miyako:20210314135230j:plain

※画像中盤の赤枠内

 

②W3CWorkingDrafit

www.w3.org

f:id:shuu_miyako:20210314135155j:plain

※画像下部の赤枠

 

そんな感じでDom型XSSの検査でscript要素を挿入してもJavaScriptは実行できない時があるよというお話でした。

 

では、また。