Bugtraq: WordPress XSS vulnerability in RSS Feed Generator を見て。 Catalyst でも $c->uri_for() で生成される文字列は、安全な文字列であると (なんとなく) 思い込んでいたらそうではないのだな。 <a href="[% c.uri_for('/') %]">みたいにエスケープしないで書くと、host 部分は $ENV{HTTP_HOST} (リクエストヘッダの Host:) から生成されることが多いので XSS が起きる。 これだと汚染された Host: を送ったクライアントにしか効かないような気がするんだけど、出力を Cache していると他のクライアントにも影響を及ぼせると。 まあ、出力はちゃんとエスケープしろ、という話だから目新しくはない。 $ GET -H 'Host:"><body onload=a