恥の多い人生を送ってきました(1)

pochi-pがはてなで一番使ってるサービスは、はてなダイアリーではなくはてなブックマークはてなスターだったりします。
つまり、生存確認ははてブをチェックした方がいいわけです。


そして今日の話。いつものようにはてブでコメント書いてて、エラいトンデモなコメントを書いてしまいました。
(現在は下記コメントを修正してあります

[web]このページをブクマする時、[security]とか[セキュリティ]とかタグ付けたらサニタイズ脳と見なされるかな? かな?

ギャアアアアアアアア!!
●×▲■ハ、ハズカスィー!!!!!!


はてブした先は予告.inの告知ページ
XSS脆弱性あったよーってお話。
そんでもって今回のはURL部分をエスケープして出力してなかったってお話です。


Webブラウザ用にHTMLとして出力する時、タグ関連の文字とかはきちんとエスケープして出力しないといけません。
でないと変にタグが途切れたり、今回の予告.inの様にスクリプト埋め込まれちゃったりするわけです。
その手のエスケープ処理はサニタイズとか呼ばれてたりもします。
そんでもってこういうエスケープははして当たり前、しないとちゃんと期待した通りの出力(この場合はHTML)が得られません。
結果としてこういうXSS脆弱性の「スクリプトを埋め込まれる」セキュリティ対策になるものの、それはあくまでオマケであって、本命は『きちんとしたデータの出力』の為のものです。


そんな訳で「エスケープ忘れはバグだよねー」と思った後、「2ちゃんねるにスレ立てちゃえるのは2ちゃんねる側のCSRF脆弱性の問題でしょ?」と思ったのです。
そこでさらに何をトチ狂ったのか私は「XSSってセキュリティ脆弱性の範疇だっけ? ただのバグの範疇だっけ?」とか思ってしまったわけです。そして前述のコメントに至る、と……。


XSS脆弱性はそのサイトで意図していないscriptをブラウザ上で実行させる問題になりますので、そのサイトに関わる情報(表示中ページの内容やそのサイトのクッキー情報等)を読み取ったあげく、それを他のサイトのcgi等の引数として指定して自動遷移させちゃえるシロモノです。
もしそのサイトのクッキーにメールアドレスやもっと重要なデータが保存されてあった場合に、それらをそのまま他サイトへ送信できちゃうって訳ですね。
もし世の全てのWebサイトの掲示板が外部から自動的に書き込めないよう対策をしてあったとしても、今回のような『イタズラ予告の自動書き込み』は防げても、それとは別次元の問題は残ってしまうわけです。
だからXSSはセキュリティ問題の範疇に含まれる訳です。


それなのに私は2ちゃんねる側のCSRF的要素に目を奪われて、そんな当たり前の事を思い出さないままはてなブックマークへ変なコメントを書いてしまった訳です。
(『サニタイズ脳』とかの用語はさっき調べ直してみて余計明確な定義が分からなくなったので、それらについては書くの省略しておきます。とにかく、私が変なコメントをしてしまったって事実には変わりないわけですから……。)


恥の多い人生が続いていくんだろうけども、こういう公共の場での恥はなるべく減らしておきたいものです。