首页 文章

如何在htaccess中阻止某些服务器

提问于
浏览
1

我知道拒绝从.htaccess中的IP地址访问的方法是:

<Limit GET POST>
order allow,deny
deny from 1.2.3.4
allow from all
</Limit>

要拒绝来自.htaccess中的用户代理的访问,我可以这样做:

BrowserMatchNoCase baiduspider banned
Deny from env=banned
BrowserMatchNoCase WordPress bad_bot
Order Deny,Allow
Deny from env=bad_bot

但是我应该如何拒绝这样的事情,这是access_log中的一个报告?

p4fe41437.dip0.t-ipconnect.de - - [27/Jan/2015:01:42:58 -0500] "GET / HTTP/1.1" 200 - "-" "Mozilla/5.0 Windows NT 6.1 WOW64 rv 16.0 Gecko/20100101 Firefox/16.0"

是否有办法拒绝使用通配符,即 *.t-ipconnect.de

谢谢 .

1 回答

  • 1

    请参阅Allow/Deny (authz)的apache文档 .

    允许访问此字符串的名称匹配或结尾的主机 . 只匹配完整的组件,因此上面的示例将与foo.apache.org匹配,但它与fooapache.org不匹配 . 无论HostnameLookups指令的设置如何,此配置都将导致Apache对客户端IP地址执行双向反向DNS查找 . 它将对IP地址执行反向DNS查找以查找关联的主机名,然后对主机名执行正向查找以确保它与原始IP地址匹配 . 仅当前向和反向DNS一致并且主机名匹配时才允许访问 .

    所以你可以做部分主机名:

    Deny from t-ipconnect.de
    

    但是,请记住,这是使用完成的 . 因此,这意味着远程IP地址必须首先具有解析为“something.t-ipconnect.de”的反向查找,然后该主机必须具有与原始IP地址匹配的正向查找 . 如果不是这种情况,那么你就无法阻止这种情况 .

相关问题