htaccess拒绝所有人访问有多安全


How secure is htaccess deny from all

我有一个文件,除了我自己的服务器(通过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)你们觉得用这种方法怎么样?

由于您直接命名文件,因此只有myfile.xml是获取该文件的唯一方法时才是安全的。如果有人对您的服务器具有shell级别的访问权限,并且可以使用不同的名称(例如ln myfile.xml heehee.txt)创建到该文件的硬链接,那么他们将能够通过heehee.txt获取文件的内容,因为他们不是通过"myfile.xml"获取的

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

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

(另外,关于最佳位置的其他答案是文档根目录之外-如果您的权限不允许您将文件放在其他位置,例如您有一个有效的基本限制,则仅使用deny-all)

有没有人能够绕过这件事直接到文件?

简而言之,没有

它安全吗。

这就是为什么发明了拒绝所有

你们觉得用这种方法怎么样?

在本地主机上托管外部php代码之前,绝对没有必要。

这基本上是Web服务器级别的安全性。如果存在另一个漏洞,即通过使用本地文件系统的SQLI攻击或某些远程文件包含安全漏洞,那么您将非常失望。因此,我会考虑对文件进行加密,并将其分配给最需要的用户/组,而且大多数服务器/网络托管公司都为这些数据提供了私有/dir。