Bruce.です。
藤岡和夫 さんは書きました (2006/06/04 23:23):
> 今回の場合のXSS脆弱性は、$patternにスクリプトを入力すると、単に表示し
> ているので、スクリプトが実行されてしまうということですね。
そうです。
もう一箇所、これはXSS脆弱性とは関係ありませんが、
環境変数の値をとってきてそれをそのまま使っているところがありますが、
これもディレクトリトラバーサルなどの攻撃を受ける元になります。
基本的に、「外部から入ってきたもの」を信用してそのまま使っては
いけません。Perlなら-Tオプションつけるとその辺チェックしてくれます。
> 実体参照エンコードで、入力したスクリプトを動かないようにすることは簡単
> ですけど、パラメータは自分で入力して使うことが前提のスクリプトなので、そ
> こまですることはないですね。デスクトップCGIと通常のWebサイトで使うCGIと
> はセキュリティの観点から違っていることを説明して、Webサイト用のCGIを書く
> ときは、XSS脆弱性に注意しましょうということになりますか。
ですね。
わかっている人がわかって使っているなら問題はないです。
しかし、ものが公表されるものですから、どこで伝播して
広まっていくか影響は読めません。「悪貨は良貨を駆逐する」では
ありませんが、薦められないコードは意外に広まっていくものですから
(悪事千里を走る? ;-))、注意しておくにしくはないと思います。
> しかし、パラメータに入れると簡単にJavaScriptが動くことに驚きました。当
> 然とはいえ(^^;)
でしょう。
> XSS脆弱性について書いてあるCGIの本って推薦するものってありますか。
まあセキュリティ一般に話が広がってしまいますが、
perldoc perlsec は当然押さえるとして、
PHPサイバーテロの技法―攻撃と防御の実際
http://www.amazon.co.jp/exec/obidos/ASIN/4883374718/
入門PHPセキュリティ
http://www.amazon.co.jp/exec/obidos/ASIN/4873112869/
Webアプリセキュリティ対策入門 ~あなたのサイトは大丈夫?
http://www.amazon.co.jp/exec/obidos/ASIN/4774127027/
あたりでしょうか。
この方面は Zazelさんが詳しいとにらんでるんですがどうでしょう?
--
木村浩一
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
mail kbk@...
web www.kt.rim.or.jp/~kbk/index.html#zakkicho
homepage3.nifty.com/farstar/