如何在public_html中读取文件但在域外?使用相对路径

时间:2013-01-06 21:22:38

标签: php html shared-hosting

我正在尝试从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,但没有用。

1 个答案:

答案 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