在php中使用数组包含文件

时间:2014-07-08 18:24:20

标签: php

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

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

在漏洞扫描程序上进行测试。它说Userinput到达敏感的接收器。包括include(&#39; config.php&#39;)。概念证明/index.php?file=../../../../../../../etc/passwd。

建议是

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

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

任何人都可以查看http://cxsecurity.com/issue/WLB-2011040079

1 个答案:

答案 0 :(得分:0)

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

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

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