php.net ではありません · NVD ではありません · CISA ではありません

PHP 脆弱性トラッカー

PHP のセキュリティ脆弱性に関する非公式ブリーフィング

English简体中文日本語DeutschFrançaisNederlandsEspañol

セキュリティ警報

PHP2Shell:PHP をアップデートしてください。それが唯一の完全な修正です。

CVE-2026-109618 と CVE-2026-109619 は、PHP 本体に存在する認証不要のリモートコード実行(RCE)の深刻な脆弱性です。PHP プロジェクトは 2026 年 10 月 21 日、サポート中の 8.2〜8.5 系に修正版を公開しました。アップデート後は PHP を再起動してください。ファイアウォールは代わりになりません。

対策の手順

PHP セキュリティ解説 · 防御向け

PHP の XSS とは?防ぎ方

クロスサイトスクリプティングは今も最も多い Web の脆弱性の一つです。PHP では、出力先に合わせたエスケープをせずにデータを HTML に出すことが原因の大半です。

最終更新

どんな問題か

反射型 XSS は現在のリクエストの値をそのまま返し、格納型 XSS はコメントなどに保存して全員に表示し、DOM ベース XSS はクライアント側の JavaScript で起きます。いずれもブラウザがサイトの権限でスクリプトを実行し、セッションを盗んだり利用者になりすましたりできます。MITRE では CWE-79 に分類されます。

見つけ方

直し方

読み取り専用の確認と安全な書き方

# Find raw echo of request data (read-only, rough first pass)
grep -rnE "echo\s+\$_(GET|POST|REQUEST|COOKIE)" --include=*.php . | grep -v /vendor/

// Escape on output, for the HTML context
echo htmlspecialchars($name, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5, 'UTF-8');

# Defense in depth: a Content-Security-Policy header (example)
Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self'

入力からタグを取り除けば十分では?

入力の検査も役立ちますが、確実に XSS を防ぐのは文脈に合わせた出力時のエスケープです。OWASP も出力エンコードを優先するよう勧めています。

strip_tags() で XSS は防げますか?

確実ではありません。属性や JavaScript の文脈に対応できず、使い方も誤りやすいため、文脈に応じたエスケープを使ってください。

ほかの PHP の脆弱性の種類

出典

外部リンクは本サイトの外に移動します。本サイトはエクスプロイトコードを掲載しません。

  1. CWE-79: Cross-site Scripting — MITRE CWE
  2. Cross Site Scripting Prevention Cheat Sheet — OWASP Cheat Sheet Series
  3. htmlspecialchars() — PHP Manual