我有一个问题。我得到了一个 PHP 脚本 (PHP 5),它将 URL 参数 $_GET['file']
保存到变量 $file
。现在有没有办法检查此变量是否为有效文件名(例如:hello.txt
而不是 /../otherdir/secret.txt
)。因为如果不检查 $file 变量,黑客就可以使用 /../
进入我的父文件夹。
最佳答案
你可以看看 php 的 basename
函数,它将返回文件名,请参见下面的示例:
$file = '../../abc.txt';
echo basename($file); //output: abc.txt
备注:basename
无论文件是否实际存在,都会从路径字符串中获取文件名。 file_exists
函数可用于验证文件是否实际存在。
关于php - 检查字符串是否是有效的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31089394/