我正在尝试从my(附加组件)域目录之外的目录中读取文件。这是我的目录结构:
public_html /
domain /
file_read.php
file_write.php
sensitive /
file.dat
虽然我可以使用“../sensitive/file.dat”写入敏感,但我无法使用相同的方法进行读取。有什么想法吗?
我没有使用绝对路径,因为它会出现在html源代码中。 public_html所属的域名未被使用。
[编辑]按要求分享一些代码:
file_write.php(敏感也会有图片):
mkdir ("../sensitive/dir", 0755);
copy ("resource/in/root/file.jpg", "../sensitive/dir/file.jpg");
move_uploaded_file ($_FILES['file']['tmp_name'], "../sensitive/dir/newfile.jpg");
file_read.php(什么都不显示)
<img src="../sensitive/dir/newfile.jpg" width="400" height="400">
我正在观察敏感文件,一切都写好了。我还手动将newfile.jpg的权限从644调整到744到755,但没有用。
答案 0 :(得分:1)
正如您所提到的,sensitive
位于域目录之外。因此,这不起作用:
<img src="../sensitive/dir/newfile.jpg" width="400" height="400">
哪个好!否则任何人都可以www.example.com/../sensitive/all/your/files.dat
并且可以访问敏感目录。
如果你想访问这个目录中的文件,你可以写一个php页面,给出一些信息返回图像(确保这是安全的,或者人们将能够访问敏感目录)。
此问题提供有关输出图像的信息:Output an Image in PHP