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の制御で重要なため覚えておきましょう。

参考リンク

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

http://sawara.me/php/2348/(PHP)

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

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

執筆者:


comment

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

関連記事

no image

POP3を使ったメール受信

メールの送信と比べると、プログラムで描く頻度は少ないですが、メールの受信について。 Contents1 POP3サーバー2 プログラムにてPOP3サーバーと通信3 PHPにてメールを取得する場合 PO …

no image

chefのインストール

以前からずっと課題になっていたchefのインストールについてです。 まだ全然わかっていませんが、なんとかvagrantからのインストールをすることができましたのでメモします。 chefでの環境構築とい …

no image

シェルの基礎+ユーザー切り替え関連

雑誌を見ていたらシェルの特集があったので、ちょっとメモリます。 補強したいところのみ要点をチェック。 Contents0.1 実行パスについて0.2 ビルドインコマンド0.3 シェル変数・環境変数0. …

no image

ansible複数アイテム登録&ファイル分割&ログ

引き続きansibleに関して。 Contents1 設定ファイルの書き換え1.1 ini_file1.2 lineinfile2 複数の値の置換3 ファイル分割3.1 ログ修正 設定ファイルの書き換 …

no image

自力での監視

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