phpsafe 𝕏 GitHub
公式CA 421DTkQ3TSG3n7F9SkNZj9NxvdFGbypwkctPd2uupump 公式アドレスはこちらのみです。

信頼できないデータへの unserialize()

深刻度: 致命的 CWE-502 OWASP A08:2021 Software and Data Integrity Failures rule: unserialize

なぜ危険か

unserialize()は任意のオブジェクトを生成できるため、攻撃者は既存クラスを連結して(ガジェットチェーン)ファイル削除やコード実行を行えます。JSONは単純なデータしか作りません。

✕ 脆弱なコード
$prefs = unserialize($_COOKIE['prefs']);
✓ 安全なコード
$prefs = json_decode($_COOKIE['prefs'] ?? '{}', true) ?: [];

対策

json_decode() に置き換えましょう。必要なら ['allowed_classes' => false] を指定。

コードを検査する

ファイルを貼り付けると、このルールに該当する行をすべて示します。

コードを検査する →