PHP 学習:セッション管理を学ぶ


1. session_name(セッション名) でセッション名を設定
セッションIDを保持するクッキーの名前として使用。
設定しない場合はphp.ini session.name の値となる。

2. session_start関数
セッション管理機能を使うには、はじめに session_start関数を呼び出す
session_startを呼び出した後は $_SESSION変数にアクセスしてセッションデータの読み書きができるようになる。

3. session_regenerate_id関数
セッションIDを生成し直す。
ログイン成功時にセッションIDを変更すること。(セッションハイジャック対策)

4. クッキー削除
setcookie関数でクッキーの有効期限に過去日を設定することで削除する。

5. セッションデータ削除
$_SESSION.= array() でセッション変数のデータを削除
session_destroy関数でサーバーのセッションデータを削除

セキュリティ:XSS攻撃への対策方法

公開:2026.04.24 16:51

XSS攻撃への対策方法

XSS(クロスサイトスクリプティング)への対策方法

1. サニタイジング(スクリプトの無害化)
エスケープ処理 (HTMLで特別な意味を持つ文字を意味を持たない文字へ変換)

2. 入力値の制限(バリデーション処理)
不必要な文字種、文字帳入力させないようにする


セキュリティ

セキュリティ:セッションハイジャック対策

公開:2026.04.24 14:42

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

推測や盗聴、窃取などの不正な手段で入手したセッションIDを用いて正規のユーザーになりすまし、セッションを乗っ取るサイバー攻撃。

セッションIDの推測

攻撃者は対象となるシステムに繰り返しアクセスすることで、セッションIDの生成規則や傾向を分析することでセッションIDを推測する。
長くランダム性の高いセッションIDを使うこと。

セッションIDの窃取

通信が暗号化されていない場合、パケットキャプチャソフトで通信内容を盗聴しセッションIDが不正取得される。
またXSS(クロスサイトスクリプティング)にセッションIDが盗まれる場合もある。

セッションIDの固定化

攻撃者が事前に用意したセッションIDを正規のユーザーで利用させセッションを乗っ取る手法。

対策

1. URLにセッションIDを含めない

2. 推測されにくいセッションIDを採用する

3. ログイン成功後にセッションIDを再発行する
ログインのたびに新しいセッションIDを付与することで、攻撃者が事前に用意したセッションIDが使えなくなる

4. cookieに属性を加える
Secure属性 - 暗号化通信(https)の時にのみ送信を制限
HttpOnly属性 - JavaScriptなどのスクリプトからのアクセスを抑制
SameSite属性 - 異なるサイトからアクセスがあった場合にCookieを送信させない


セキュリティ

その他の記事