gpt4 book ai didi

PHP:规范化不存在目录的路径以防止目录遍历?

转载 作者:可可西里 更新时间:2023-10-31 22:13:18 24 4
gpt4 key购买 nike

我想规范化来自外部资源的路径以防止目录遍历攻击。我知道 realpath()函数,但遗憾的是这个函数只返回现有目录的路径。因此,如果该目录(还)不存在,则 realpath() 函数会切断不存在的整个路径部分。

所以我的问题是:你知道一个只规范化路径的 PHP 函数吗?

PS:我也不想提前创建所有可能的目录;-)

最佳答案

没有用于此的内置 PHP 函数。请改用如下内容:

function removeDots($path) {
$root = ($path[0] === '/') ? '/' : '';

$segments = explode('/', trim($path, '/'));
$ret = array();
foreach($segments as $segment){
if (($segment == '.') || strlen($segment) === 0) {
continue;
}
if ($segment == '..') {
array_pop($ret);
} else {
array_push($ret, $segment);
}
}
return $root . implode('/', $ret);
}

关于PHP:规范化不存在目录的路径以防止目录遍历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com