如何限制用户访问php中的文件夹?

时间:2011-11-11 09:22:32

标签: php apache .htaccess

我在周围搜索了但是找不到所有我想知道的是我有一个名为temp的文件夹

- >的public_html

- >温度

现在我如何限制用户从外部服务器访问它,就像有人在他们的php脚本中包含它一样会出错?我想通过PHP而不是通过.htaccess或apache我尝试chmod,但它只限制整个网站从本地服务器。我也做了不变的事情,但如果有人知道常量名称,那么他仍然可以提取数据。

3 个答案:

答案 0 :(得分:1)

您不能包含远程PHP文件。如果他们将allow_furl_openallow_url_include设置为true并使用include('http://yoursite/temp/yourfile.php'),则包含的内容是该PHP文件的输出。不是PHP源本身。

所以当你有一个包含以下内容的php文件时:

<?php
    $password = "secret";
    echo "Test";
?>

有人远程包含该文件,他们只会返回“Test”,这不是有效的PHP语法。他们将无法看到文件的内容,只能看到输出的内容。该文件在远程(或在本例中为您的)服务器上运行。包含它的任何人在该服务器上执行后输出

所以你必须做if (!isset(some_magical_constant)) die("Go away!")这样的事情,这只是愚蠢的,但遗憾的是我已经在网上看到了它。

答案 1 :(得分:1)

htaccess,只有我知道的方式...不认为用PHP可以实现

<Directory /public_html/temp>
  order allow,deny
  deny from all
</Directory>

答案 2 :(得分:0)

在“temp”文件夹中放入一个空的“index.html”文件。这可以防止用户看到该文件夹​​的内容。这基本上使得用户无法解决它。

至于将其包含在脚本中,人们必须知道其中包含哪些文件才能在脚本中使用它。