php - 转义有效文件名/路径

  显示原文与译文双语对照的内容
0 0

所以我现在正在进行安全问题,我想知道制作脚本安全的完美方法是什么。 我的代码里有些地方

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

即使是恶意代码,也可能是 $AdditionalPath,所以我很难让自己对该变量( 比如 A-ZA-Z0-9./ ) 进行某些字符处理。 我正确而且我也正确地做了这个 正规表达式?

谢谢!

时间:原作者:5个回答

0 0

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

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

更新:

从realpath的文档中:

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

原作者:
...