サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性 - (page 3)

池田雅一(テクマトリックス)

2008-01-15 08:00

対策

 この脆弱性は、ログインの前後でセッションIDが同じであることが原因だ。そのため、最も簡単な対策はログイン前とログイン後でセッションIDを変更することだ。しかし、アプリケーションの仕様によってはログイン前に格納したセッション変数をログイン後にも使いたいために、セッションIDを変更したくない場合がある。

 このような場合には、セッションIDとは別にログイン成功時に認証したことを表す秘密情報を発行する。そして、発行された秘密情報をサーバ側で記録しておき、ログイン状態の確認には、発行した秘密情報とブラウザから受け取った秘密情報が一致するかどうかで行います。

クロスサイトリクエストフォージェリ

 クロスサイトリクエストフォージェリ(CSRF)は、対象のアプリケーションでセッションを維持しており、かつ他のサイトを閲覧していた時などに、そのサイト内にあるリンクをたどると、ユーザーの意図には関係なく、対象のアプリケーションでの商品の購入やパスワードの変更といった処理を勝手に行ってしまう問題だ。

 たとえば、以下のような画面遷移を行うアプリケーションがあるとする。

アプリケーションの変遷(1) ※クリックすると拡大画像が見られます。

 ログインしている(セッションを維持している)状態では既に「画面A→画面B」のリクエストaが送信される。この状態で、ユーザーが別のサイトを閲覧する。このときに別サイトにあるリンクをクリックするなどにより、リクエストdを送信すると(ログインしている状態であるため)リクエストdで実行される処理をユーザーが意図せず実行してしまう。その結果、パスワードが変更されたり、商品が購入されるという被害が発生する。

アプリケーションの変遷(2) ※クリックすると拡大画像が見られます。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]