php realpath()返回一个空字符串

马特·韦兰德

在这篇文章的指导下,防止PHP中的目录遍历但允许路径我试图阻止目录遍历,但是我遇到了一些奇怪的事情,首先,realpath返回了一个好的路径

        $fPath = $path.$parent.'/'.$name;
//$name (the user input) in this sample is "fff", $parent is an empty string        

        //make sure user didn't try to traverse backwards on the basepath           
        $basepath = $path;
        $realBase = realpath($basepath);
echo $realBase."<br/>";
//gives: /Users/me/Documents/www/gallery/php_sample/uploadedImages

        $userpath = $fPath;
echo $userpath."<br/>";
//gives: /Users/me/Documents/www/gallery/php_sample/uploadedImages/fff

        $realUserPath = realpath($userpath);
echo $realUserPath."<br/>";
//gives blank (an empty string).

为什么有任何想法?

马特·韦兰德

就像AbraCadaver在评论中说的那样:“这仅在目录存在时才有效。要验证/清除用户提供的目录,您将需要一些规则并清理或拒绝它。”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当字符串小于PHP 8中的起始字符长时,substr返回一个空字符串

php:// input输出一个空字符串

为什么PHP将“ \ r \ n”添加到一个空字符串?

PHP shell_exec返回一个空字符串,同时手动执行同一命令不会

使用PHP从另一个字符串返回预选单词的字符串

包括一个php文件,但以字符串形式返回输出而不是打印

php-ffi: 返回类型 const char* 是一个字符串

运行从 php 调用的 bash 并返回一个字符串

一段时间后,PHP了shell_exec返回空字符串

PHP中的DOMXPath返回空字符串

JsonEncode在php中返回空字符串

python的php exec脚本返回空字符串

PHP preg_split返回空字符串

列表框返回空字符串?的PHP

PHP在一个字符串内的一个字符串之后返回一个字符串

PHP 字符串最后一个元素的变化

一个 TXT 字符串的 PHP NSUpdate 更新

在 PHP 中解码一个压缩的字符串

PHP返回的字符串带有小写的每个单词的第一个字符

为什么这个转义 HTML 的函数必须有一个初始设置为空字符串的参数 - PHP?

在php字符串中删除两个以上的返回值和一个以上的空格

两个相同的字符串返回false,而从PHP响应接收到一个字符串

$(“#myTextArea”)。val()返回一个空字符串

getPropertyValue(“ backgroundColor”)返回一个空字符串

php变量,字符串和数组:关联数组返回字符串的第一个字母

我们可以在 PHP 函数中返回一个字符串吗?

通过在php中指定第一个和最后一个位置来返回字符串的一部分

PHP preg_replace一个精确的字符串与另一个

PHP字符串包含并输出另一个PHP变量