インクルードが実行される前にインクルードして、サーバ上に存在することを確認できますか?インクルードファイルをホワイトリストを使用して実行する前に除外
私は、攻撃者が何らかのホワイトリストを使用してファイルパスを侵害しないようにしたいのですが、これは可能ですか?
私などが、このようになります:あなたのパスは、PHPスクリプトにハードコードとユーザーを受け入れていない場合は
$allowed_files = array('../includes/front/header.php','../includes/front/footer.php');
$include_file = <string with file/path>; //EG '../includes/front/header.php'
if (in_array($include_file,$allowed_files && file_exists($include_file)) {
require_once($include_file);
}
:
require_once('../includes/front/header.php');
ファイルが必要であるため、ファイルが見つからないと実行が停止するということが、 'require'の全ポイントです。あなたが望んでいなければ 'file_exists()'や 'is_file()'と組み合わせて 'include'を使うだけです。 – jeroen