2014-01-13 145 views
1

我有一个文件夹www.mysite.com/page/panel/soascripts/,其中有10个不同的PHP文件。 我想阻止访问文件夹soascripts和其中的PHP文件。除X-Requested-With = XMLHttpRequest(对于ajax)。这可能与htaccess?防止使用.htaccess访问php文件(文件夹)XMLHttpRequest除外

+1

为什么要麻烦?人们可能会偶然发现并感到困惑吗?如果任何攻击者想要对数据做任何有害的事情,那么添加一个“X-Requested-With”头文件是微不足道的。 – Quentin

+2

嗯,我只是想要它。在我的日志中,我已经看到了一些访问。我不希望它作为单一安全选项,我已经实施了授权secr。 (我知道攻击者可以很容易地操纵标题),但我希望为普通用户提供这个功能。他们不应该在这个目录中绊倒。 – Kallewallex

回答

2

在您soascripts文件夹中的htaccess文件:

RewriteEngine On 
RewriteCond %{HTTP:X-Requested-With} !=XMLHttpRequest 
RewriteCond %{HTTP:X-REQUESTED-WITH} !^(XMLHttpRequest)$ 
RewriteRule \.php$ - [L,F] 

所以没有

X-Requested-With: XMLHttpRequest 

请求头,响应将是一个403禁止。


编辑:

如果您想将规则添加到文档根目录,你只需要包括路径:

RewriteCond %{HTTP:X-Requested-With} !=XMLHttpRequest 
RewriteCond %{HTTP:X-REQUESTED-WITH} !^(XMLHttpRequest)$ 
RewriteRule ^page/panel/soascripts/[^/.]+\.php$ - [L,F] 

任何类型之前,请务必将其添加的路由规则(如正在发送给index.php的东西)。

+1

[这是次优的做法,有任何* .htaccess文件](http://httpd.apache.org/docs/2.2/howto/htaccess.html#when)。 – Quentin

+0

JonLin谢谢。 @Quentin我没有很多目录或文件。我只是想阻止任何人显示强奸php文件,我不知道如何将其归档。嗯,我读过文章....这也会减慢我的php mysql查询到** soascripts **文件夹中的数据库? – Kallewallex

相关问题