0

所以我现在遇到了安全问题,我想知道使脚本安全的完美方法是什么。我的代码中有这个

$AdditionalPath = preg_replace("/^[A-Za-z0-9._-\/\\]/","",$AdditionalPath);
require $AdditionalPath."../xdata/php/website_config/mysql.php";

$AdditionalPath可能是一切,甚至是恶意代码,所以我对自己很严格,我应该让某些字符进入那个变量,比如A-Z a-z 0-9 . / \. 我说的对吗?而且我是否正确地制作了这个正则表达式?

谢谢!

4

1 回答 1

1

为什么不使用realpath而不是正则表达式:

$file = realpath( $AdditionalPath . "../xdata/php/website_config/mysql.php");
if( is_readable( $file ))
  require $file;

更新:

从 realpath 的文档中:

注意:运行脚本必须对层次结构中的所有目录具有可执行权限,否则 realpath() 将返回 FALSE。

于 2012-10-02T13:07:09.063 回答