【问题标题】:Which method is more secure/suitable for blocking access to a subdirectory using .htaccess?哪种方法更安全/更适合阻止使用 .htaccess 访问子目录?
【发布时间】:2014-07-15 01:10:06
【问题描述】:

我正在尝试使用.htaccess 阻止外部访问我网站的/includes/ 目录,该目录仅包括处理PHP 文件。以下两种方法都“有效”,但我更喜欢后者,因为它不会给用户留下错误页面。有人可以让我知道它是否不那么安全吗?

用这个更好吗:

<Directory "/includes">
  Deny from all
</Directory>

或者这个:

RedirectMatch 301 ^/includes/.*$ http://www.mymainurl.com

或者还有什么更合适的?

网站内容由 index.php 动态提供,因此/includes/ 文件夹中的文件需要通过PHP 的包含功能保持可访问性。

【问题讨论】:

  • 访问您的 /includes/ 目录的访问者应该得到一条错误消息。虽然现在想来,“RedirectMatch”否认了坏人的信息,这很好。
  • 我倾向于同意,但我想确保任何错误链接都不会因为技术错误消息而吓跑我的用户!

标签: php .htaccess url-redirection


【解决方案1】:

或者,您可以返回 404 让人们认为包含目录甚至不存在:

RewriteEngine On
RewriteRule ^includes/ - [L,R=404] 

【讨论】:

  • 这完美结合RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L]ErrorDocument 404 /404。前者使存储在我的包含文件夹中的样式表保持工作,后者允许我指定自定义 404 页面(考虑到我的页面动态加载方式,这是必要的)。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-04-22
  • 2012-08-22
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多