HTMLラッパー関数のXSS

JavaScriptのStringオブジェクトのHTMLラッパーメソッドの中には、引数の値をhtmlのタグの属性値として出力するものがあります。

  • anchor(name)
  • fontcolor(color)
  • fontsize(size)
  • link(href)

多くのブラウザで、これらのメソッドは属性値を何のエスケープもせずにそのまま""で囲むだけの実装となっているため、不用意に使うとXSSを引き起こします。

対策

DOM操作に置き換える。今さらこんなメソッドを使う価値はありません。