【发布时间】:2014-01-06 15:06:52
【问题描述】:
我有一个字符串的恒定开头和一个可变结尾,我如何保护字符串,以免在我注入的字符串包含的情况下创建后退(或升压)
../
这是一个简短的示例代码:
$dir = 'my/base/path/';
$file = $dir . $userSelectedFilename;
unlink($file);
如果$userSelectedFilename 是'../../myFileName',我认为这会导致我的脚本实际上尝试取消链接my/myFilename 上两个目录级别的内容,这显然不是我想要允许的,我想将其保留在基本路径下my/base/path/ 在所有情况下。
【问题讨论】:
-
my/base/path/../../myFileName - 我可能很厚,但至少在我的服务器上不会上升,只会导致错误!
-
使用
realpath函数来消除符号链接,例如 Gumbo 的建议中出现的.、..、/、//等。
标签: php string security code-injection