1

我试图阻止对特定文件和特定目录中的文件的访问,并且仅在服务器本身包含或调用它们时才允许访问它们。

目前我在“http://www.thedomain.com/.htaccess”中有一个如下所示的 htaccess 文件,以阻止对“http://www.thedomain.com/specific_file.php”的访问

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www.)?thedomain.com/.*$ [NC]
RewriteRule specific_file.php$ / [R=302,L]

以及下面显示的“http://www.thedomain.com/thedir/.htaccess”中的 htaccess 文件,以阻止访问“http://www.thedomain.com/thedir/”中的所有文件

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www.)?thedomain.com/.*$ [NC]
RewriteRule .(gif|jpg|png|css|js|php|inc)$ / [R=302,L]

我希望能够在多个域上使用这些 htaccess 文件,而无需更改列出的域名。那可能吗?

顺便说一句,这段代码是拼凑在一起的,所以任何关于改进它的建议都将不胜感激。谢谢

4

2 回答 2

2

尝试使 RewriteCond 的最后一部分使用相对 URL 而不是绝对 URL,那么它应该可以跨任何域工作。

于 2013-01-09T11:40:58.120 回答
0

检查引用者是不安全的方式我建议您在这种情况下将您的特定文件上传到根路径上方的一层,只有您有权访问上传的文件(直接寻址)并且攻击者无权访问它

于 2013-01-09T11:47:34.553 回答