检查PHP中的路径遍历,并允许使用未损坏的不存在的路径

时间:2018-09-07 15:54:26

标签: php

遵循答案https://stackoverflow.com/a/4205278/10329981

$basepath = '/foo/bar/baz/';
$realBase = realpath($basepath);

$userpath = $basepath . $_GET['path'];
$realUserPath = realpath($userpath);

if ($realUserPath === false || strpos($realUserPath, $realBase) !== 0) {
//Directory Traversal!
} else {
//Good path!
}

如何确保不存在的路径不是路径遍历。说一个函数为用户上传的文件创建一个新路径,该目录在系统中尚不存在,如何确保该文件不包含任何路径遍历。我不能使用realPath(),因为目录不存在,它将返回false。

0 个答案:

没有答案