ユーザー入力によるファイル読込
なぜ危険か
リクエストの値でincludeパスを作ると、攻撃者がシステムファイルやPHP入りの画像、外部コードを読み込めます。サーバー全体を乗っ取られる最短ルートの一つです。
include $_GET['page'] . '.php';
$pages = ['home' => 'home.php', 'about' => 'about.php'];
$page = $pages[$_GET['page'] ?? 'home'] ?? 'home.php';
include __DIR__ . '/pages/' . $page;
対策
許可したページ名だけを固定ファイルに対応させるホワイトリストを使いましょう。
コードを検査する
コードを検査する →
ファイルを貼り付けると、このルールに該当する行をすべて示します。