htaccess对所有人的拒绝是多么安全

时间:2012-09-14 14:43:21

标签: php security .htaccess

我有一个文件,我不想被除我自己的服务器之外的任何人访问(通过php请求)。我在.htaccess中使用以下内容:

<Files myfile.xml>
    Order Deny,Allow
    Deny from all
    Allow from localhost
</Files>

但是想知道,这有多安全?反正有人可以绕过这个并直接进入文件吗? 在我的php文件中,我有:

simplexml_load_file("myfile.xml")

获取数据并使用

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')

所以没有人可以直接访问该文件(仅限Ajax) 你们对使用这种方法有何看法?

4 个答案:

答案 0 :(得分:8)

由于您直接命名文件,因此只有myfile.xml是获取该文件的唯一方式才能安全。如果某人对您的服务器具有shell级别访问权限,并且可以使用其他名称创建该文件的硬链接,例如ln myfile.xml heehee.txt,然后他们将能够获取文件的内容vi heehee.txt,因为他们没有通过'myfile.xml'获取文件。

最佳做法是将文件完全保留在文档根目录之外。这并没有阻止符号链接/硬链接攻击,但它确实阻止了某些绕过攻击。

答案 1 :(得分:2)

如果您在脚本中读取文件,则根本不会通过Apache,因此您甚至不允许使用localhost。简单地否认一切,就是这样。

(加上关于最佳位置的其他答案是在文档根目录之外 - 如果您的权限不允许您将文件放在其他位置,则仅使用拒绝所有内容,例如您有基本限制)

答案 2 :(得分:0)

  

无论如何,有人可能能够解决这个问题   直接到文件?

简而言之,不。

安全吗?

这就是为什么发明拒绝所有的原因。

  

你们对使用这种方法有何看法?

在您的localhost上托管外国php代码之前绝对没有必要。

答案 3 :(得分:0)

这基本上是网络服务器级别的安全性。如果还有另一个漏洞,即通过使用本地文件系统的SQLI攻击或某些远程文件包含安全漏洞,那么你几乎已经知道了。所以我会考虑对文件进行加密,然后将其调整为最必要的用户/组,并且大多数服务器/虚拟主机公司都会为这些数据提供私有/目录。