所以我现在遇到安全问题,我想知道什么是使脚本安全的完美方法。我的代码中有一个
$AdditionalPath = preg_replace("/^[A-Za-z0-9._-\/\\]/","",$AdditionalPath);
require $AdditionalPath."../xdata/php/website_config/mysql.php";
$AdditionalPath
可能是一切,甚至是恶意代码,所以我很难自己,我应该让某些字符进入该变量,例如A-Z
a-z
0-9
{{ 1}} .
/
。我是对的?我也正确地制作了这个正则表达式吗?
谢谢!
答案 0 :(得分:1)
为什么不使用realpath而不是正则表达式:
$file = realpath( $AdditionalPath . "../xdata/php/website_config/mysql.php");
if( is_readable( $file ))
require $file;
<强>更新强>
来自realpath的文档:
注意:正在运行的脚本必须具有可执行权限 层次结构中的目录,否则realpath()将返回FALSE。