在php中使用数组包含文件


include file using array in php

在index.php中包含两个文件。一个是config.php,另一个是db.php。我用

<?php include 'config.php'
include 'db.php' ?>

在漏洞扫描程序上进行了测试。它说用户输入到达敏感接收器。包括Include ('config.php')。概念验证/index . php ?文件 =../../../../../../../等/passwd。

建议是

$files = array("index.php", "main.php");  
if(!in_array($_GET["file"], $ files)) exit;

你能解释一下如何根据上面的建议添加config.php和db.php吗?我把两个文件都放在一个include文件夹里。

有没有人看过http://cxsecurity.com/issue/WLB-2011040079.

您收到的建议是硬编码$_GET['file']的有效值列表,然后根据该列表检查用户输入。如果您希望允许其他文件,只需将它们添加到列表中:

$files = array("index.php","main.php","config.php","db.php");

我不确定这是否会帮助您通过您正在运行的任何漏洞测试,但它将确保仅包含您故意列出的文件。