拒绝htaccess对文件夹和文件的直接访问

2020/09/30 18:21 · php ·  · 0评论

这是场景:

  • index.php根文件夹中有一个文件
  • 一些文件包含在index.php其中是在includes文件夹中。
  • submit.php根文件夹中还有1个其他文件()用于表单提交操作。

我想includes通过htaccess限制直接用户访问文件中的文件。也为submit.php但是include将适用于index.php文件。就像,如果用户键入www.domain.com/includes/somepage.php,它将对其进行限制(可以重定向到错误页面)。

我只是将includes文件夹移出了Web根目录,但是如果您想阻止直接访问整个includes文件夹,则可以.htaccess在该文件夹中放置一个文件,该文件仅包含:

deny from all

这样,您无法从该文件夹打开任何文件,但可以将它们包括在php中而没有任何问题。

这是mod_rewrite基于的解决方案:

RewriteRule ^(includes/|submit\.php) - [F,L,NC]

如果URI包含/includes/或,这将显示禁止使用的错误/submit.php

可以使用Files指令并禁止访问所有文件,然后再次使用它来设置可访问的文件:

<Files ~ "^.*">
  Deny from all
</Files>

<Files ~ "^index\.php|css|js|.*\.png|.*\.jpg|.*\.gif">
  Allow from all
</Files>

1个基于线性mod_alias的解决方案:

RedirectMatch 403 ^/folder/file.php$

这将显示/folder/file.php的禁止错误

如果我理解正确,您只是想拒绝对包含文件夹的访问?

在includes文件夹中放置带有'DENY FROM ALL'指令的.htaccess可以解决问题。

您的Q分两部分,jeroen和anubhava的解决方案都适用于第一部分-拒绝访问/ includes。阿努巴瓦的作品也适用于第二部分。我更喜欢后者,因为DOCROOT/.htaccess无论如何我都会使用它,并将所有这样的控件都保存在一个文件中。

但是,我不想讨论的是“拒绝访问submit.php的概念如果您不想使用,submit.php那为什么还要在DOCROOT中使用它呢?我怀疑这里的答案是,您以某些形式将其用作操作目标,并且只希望在提交表单时而不是直接(例如从垃圾邮件程序中)将其触发。

如果这是真的,那么您将无法使用anubhava的第二部分,因为这会导致您的表单失败。您可以在此处执行(i).htaccess检查,以确保引荐来源网址是您自己的索引页:

RewriteCond %{HTTP_REFERRER} !=HTTP://www.domain.com/index.php   [NC]
RewriteRule ^submit\.php$    -                                   [F]

并且(ii)在PHP index.php表单生成器中包括一些用于时间戳和验证的隐藏字段。验证可以是时间戳的MD5的前10个字符和一些内部秘密。在处理提交时,您可以(i)验证时间戳和验证是否匹配,以及(ii)时间戳在当前时间的15分钟以内。

这可以防止垃圾邮件,因为垃圾邮件发送者可以获得有效的时间戳记/验证对的唯一实际方法是解析表单,但是这种抓取只有15分钟的寿命。

根据更高级别上可能设置的其他选项,您可能需要将以下内容放入包含目录中的.htaccess文件:

Satisfy all
Order deny,allow
Deny from all

当上层目录定义包括行的基本身份验证时,我遇到了这个问题:

Satisfy any

因为用户已通过身份验证,所以这使我无法完全拒绝生效。

您可以将以下命令添加到.htaccess文件

Deny from all
ErrorDocument 403 "nothing is here"

在未经授权的访问的情况下,它将显示“ Nothing is here”消息。

如果要通过错误代码重定向到特定页面,则可以定义如下命令:

ErrorDocument 404 "/errors/404.html"

它将重定向到,/errors/404.html并显示未找到自定义页面的屏幕。

本文地址:http://php.askforanswer.com/jujuehtaccessduiwenjianjiahewenjiandezhijiefangwen.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!