- 2006年11月 3日 23:26
- セキュリティ技術
SQLインジェクションと並んで試験に出る頻度の高い「クロスサイトスクリプティング」もまとめておきます。
クロスサイトスクリプティング(Cross Site Scripting:略称 XSS)は別名ジャバスクリプトインジェクション(JavaScript Injection)とも言います。
不正なJavaScriptが実行されることにより、クッキー情報が漏洩する極めて単純な脆弱性です。
通常、この不正なJavaScriptは攻撃対象とは別のサイトになるため、クロスサイトスクリプティングと呼ばれています。
リスクとしては、クッキーを利用してセッション管理を行うサイトの場合にクッキーが漏洩することにより、セッションを乗っ取られることで他人へのなりすましが成立してしまうことです。
もう少し具体的に言うと、クッキーの中にセッションIDが保存されているとき、このセッションIDを盗むことができれば簡単に他人になりすますことができます。
別の例えをすると、他人の家の鍵を入手することと同じなので、鍵さえ持っていればいつでも入ることができますし、正面から鍵を使って侵入するため防犯システムでも感知されなくなります。
これと同様に、セッションIDを盗まれてなりすまされると、サーバサイドでは不正なアクセスなのかを判断することができなくなってしまいます。
脆弱性が存在するかどうかは、入力画面より
javascript: alert('Hoge')
あるいは
alert('Hoge');
のように入力し、その確認画面でダイアログが表示されるときに脆弱性が存在すると言えます。
ただし、セッション管理を行っていないサイトでは特に気にしなくて良い場合もあります。
この脆弱性を防ぐためには、基本的にはプログラムでの作りこみが必要となります。
(※ASP.NETの場合は不正なタグやスクリプトを入力するとシステムエラーにすることもできます)
一般的な方法は、表示する際にタグやJavaScriptを無効にする文字変換処理を加えることで、これをサニタイズと言います。
このサニタイズ処理は表示する直前に行うことが効果的です。
入力直後に変換した場合、文字数チェックが正常にできなくなったり、再入力時にサニタイズ前の状態に再変換しなければならなくなるからです。
- Newer: 出題範囲の一部見直し
- Older: 【情報セキュリティ】SQLインジェクション
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://magicbox.sakura.ne.jp/mt/mt-tb.cgi/194
- Listed below are links to weblogs that reference
- 【情報セキュリティ】クロスサイトスクリプティング from IT試験受験日記