php - 检查字符串是否是有效的文件名

标签 php validation

我有一个问题。我得到了一个 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/

相关文章:

php - 让 PHP Eclipse 对不同的文件类型运行错误检查

php - 在 Codeigniter 中填充表单数据和验证数据的更简单方法?

php - 如何使用 php 或 javascript 编写一个函数来确定 16 位整数的人口数?

javascript - 根据用户年龄显示div

php - PDO 执行 mysql cli 不能执行的语句

php - Laravel:非复合名称 'Cache' 的 use 语句无效

angularjs - Angular - ngModelController 缺少 $validators?

angularjs - 如何在初始化后触发附加事件的 ngModel 验证

用于 SQL 查询的 PHP 脚本

javascript - 如何在解析前取消/忽略 AngularJS 异步验证检查?