次のページへありがちな脆弱性(XSS)を調べてみようXSSの脆弱性はWebアプリケーション開発において“つい”忘れられることの多いありがちな脆弱性です。IPAのサイトでも過去に発生して話題に上ったこともあり、いまでも「定番」といえる脆弱性でしょう。それでは、実際にこの脆弱性を調べてみましょう。Ajaxを超える通信技術Comet」で作成したチャットアプリケーションです。Cometのチャットアプリケーション簡単な画面で、入力項目が2個所と送信用のボタンがありました。入力項目はそれぞれ「ユーザ名」と「メッセージ」の2つでチャットするユーザーとそのメッセージを入力するためのフォームでした。XSSをワザと発生させるXSSは「悪意のあるユーザーによるフォームへの入力内容により意図せぬコードが実行される脆弱性」です。GETリクエストを含んだURLによる問題が話題になることが多く、実際に問題になることも多いです。language="javascript">alert('hoge')</script>」のようにスクリプトを混入させて実行してみましょう。今回対象となる入力項目は「user」「message」の2つですので、以下のようなURLを作成してWebブラウザから開いて調べてみましょう。http://192.168.1.45:8080/CometServlet?user=<script%20language="javascript">alert('hoge')</script>&message=<script%20language="javascript">alert('hoge')</script>図3何の反応もありませんでした。こちらは何も起こらず問題ないようです。次に、POSTリクエストを用いてスクリプトを混入させて実行してみましょう。各入力項目に以下の文字列を入力します。CVEのセキュリティ・ホール検索ページそのまま送信してみると......。図5JavaScriptで記述したアラートが実際に2回も表示されてしまいました。これはまさに、XSSの脆弱性があるということを暗示しており、このように入力フォームの内容が基で意図せぬ処理が実行されるのがXSSです。(画面上は何も表示されないがHTMLタグが埋め込まれてコードが実行された)このチャットアプリケーションにおいて、この脆弱性は“非常に危険”な状態だといえます。このチャットアプリケーションからリアルタイムに会話中の相手に対してスクリプトを送り込めることになるからです。以下のように太郎さんと花子さんが会話をしているような場面です。図7ここで、花子さんがほかのサーバに遷移させるスクリプトを混入させると......。図8会話をしていた太郎さんが強制的に別のページへと転送されてしまいます。強制的にスクリプトを実行させてしまうこの状態、修正する必要が高いといえます。これまでに分かったことは、以下の3つの状況です。次ページで解説します。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。