skillup

技術ブログ

サーバー・ネットワーク

セッションハイジャック

投稿日:2017年2月3日 更新日:

今回はセッションハイジャックについて。WEB系では必須といえるでしょう。

セッションハイジャックとは?

WEBアプリケーションで使われているセッションID(利用者を識別するための情報)を使って、セッション管理を行うが、このセッションIDに不備がある場合、このセッションIDを不正に取得され、利用者になりますましてアクセスされてしまう。

似たようなものとしてセッションID固定化(悪意のあるユーザーがセッションIDを意図的に第三者に使わせること)という手法もある。

被害

  • ログイン後の利用者のみが利用可能なサービスの不正利用や個人情報の改ざん(金銭処理を伴ったり、非公開情報を扱うサイト、会員サイトは要注意)

対策

  • セッションIDを推測が困難なものにする(乱数発生などを行う)
  • セッションIDをURLパラメータに格納しない。(cookieかhiddenで渡す)リファラ属性で読み取られる可能性あり。
  • HTTPSで利用する場合、Cookieにはsecure属性を加える
  • ログイン成功後に新しいセッションを開始する。
  • ログイン成功後に既存のセッションIDとは別に秘密情報を発行し、ページ遷移ごとにその値を確認する
  • セッションIDをCookieにセットする場合、有効期限に注意する

Cookieについて

SessionIDはCookieに保存するのが基本。

そしてCookieの属性などについて

Cookieの属性など

Domain

ブラウザがクッキー値を送信するサーバーのドメイン。ここを指定することでドメインを指定できます。ただ、設定しなければ基本的にクロスドメインはNGになります。

Path

特定のPathのみで有効になるようにできます。

Expires

有効期限。ない場合にはブラウザの終了までになるまで。

Secure

SSLの場合のみ、クッキーを送信

HttpOnly

trueにすることでJavaScriptでのクッキーの読み取りを不可にします。

またWEBサーバーのセッションIDの項目に関して。

sessionの制御で重要なため覚えておきましょう。

参考リンク

IPA 安全なウェブサイトの作り方

安全なWebアプリケーションの作り方

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

SSH鍵認証に関して

SSHの鍵認証についてやり方自体は流れ作業でできていましたが、根本的なところが理解していないので復習。 まずは通常の流れを。 1 クライアント(自分のPC)で公開鍵・秘密鍵を作成。[crayon-66 …

no image

シェルスクリプトでのsshログインとメール送信

久々にシェルスクリプトをやったんでその復習を。 応用範囲は結構広そうです。 Contents1 ファイルの読みこみ方2 関数の定義、使い方3 SSHログイン4 ssh鍵認証つきのログイン5 メール送信 …

no image

サーバー設定ファイルについて apache

以前から気になっていたサーバーの設定ファイルに関しての疑問について調査。 本日はapacheについて学習しようと思います。 通常のapacheの設定ファイルは[crayon-66ff1a275fae6 …

no image

自力での監視

Zabbixの勉強を進めていますが、マニュアル通りに設定していて、中で何をやっているかをあまり理解していなかったりします。 それだとちょっとまずいのでZabbixでの構築とともに自力での監視スクリプト …

no image

IAMに関して

7月からインフラの案件に参画しておりますが、今まで理解が不十分だったIAM部分の整理をしてみたいと思います。 Contents1 権限の考え方について2 信頼ポリシーとは3 サービスロールとは 権限の …

アーカイブ