所以我现在遇到了安全问题,我想知道什么是使脚本安全的完美方法。我的代码中有这样的内容:
$AdditionalPath = preg_replace("/^[A-Za-z0-9._-\/\\]/","",$AdditionalPath);
require $AdditionalPath."../xdata/php/website_config/mysql.php";
$AdditionalPath
可能代表了一切,甚至是恶意代码,所以我严格要求自己应该让某些字符进入该变量,比如A-Z
a-z
0-9
.
/
\
。我说的对吗?另外,我做的正则表达式正确吗?
谢谢!
发布于 2012-10-02 21:07:09
为什么不使用realpath代替正则表达式:
$file = realpath( $AdditionalPath . "../xdata/php/website_config/mysql.php");
if( is_readable( $file ))
require $file;
更新:
来自realpath的文档:
注意:运行的脚本必须对层次结构中的所有目录具有可执行权限,否则realpath()将返回FALSE。
https://stackoverflow.com/questions/12690763
复制相似问题