博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫...
阅读量:4647 次
发布时间:2019-06-09

本文共 2075 字,大约阅读时间需要 6 分钟。

   从Apache2.2升级到Apache2.4后,发现原来用来限制部分IP和垃圾网络爬虫的访问控制规则不起作用,查询后才发现,Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查。原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令。

    

    注意:使用require指令时,需要在指令外添加<RequireAll></RequireAll>标签对,否则重启Apache2.4加载规则时将出现错误:" negative Require directive has no effect in <RequireAny> directive "

 

下面直接给出一些实例对Require指令的使用进行说明:

 

例1:允许所有访问请求

Apache2.4下的配置:

Require all granted

 

例2:拒绝所有访问请求

Apache2.4下的配置:

Require all denied

 

例3:只允许来自特定域名主机的访问请求,其他请求将被拒绝

Apache2.4下的配置:

Require host google.com

 

例4:只允许来自特定IP或IP段的访问请求,其他请求将被拒绝

Apache2.4下的配置:

Require ip 192.120 192.168.100 192.168.1.1

 

例5:允许所有访问请求,但拒绝来自特定IP或IP段的访问请求(阻止恶意IP或恶意爬虫网段的访问)

Apache2.4下的配置:

Require all granted Require not ip 192.168.1.1 Require not ip 192.120 192.168.100

 

例6:允许所有访问请求,但拒绝某些User-Agent的访问请求(通过User-Agent屏蔽垃圾网络爬虫)

使用mod_setenvif通过正则表达式匹配来访请求的User-Agent,并设置内部环境变量BADBOT,最后拒绝BADBOT的访问请求。

Apache2.4下的配置:

SetEnvIfNoCase User-Agent ".*(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot).*" BADBOT SetEnvIfNoCase User-Agent "brandwatch" BADBOT SetEnvIfNoCase User-Agent "rogerbot" BADBOT
Require all granted Require not env BADBOT Require not ip 192.168.100.1

 

 

其它require访问控制指令用法如下:
Require all granted #允许所有Require all denied #拒绝所有Require env env-var [env-var] ... #允许匹配环境变量中任意一个Require method http-method [http-method] ... #允许特定的HTTP方法(GET/POST/HEAD/OPTIONS)Require expr expression #允许,表达式为trueRequire user userid [ userid ] ... #允许特定用户Require group group-name [group-name] ... #允许特定用户组Require valid-user # #允许,有效用户Require ip 192.100 192.168.100 192.168.100.5 #允许特定IP或IP段,多个IP或IP段间使用空格分隔

 

参考:
 

转载于:https://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.html

你可能感兴趣的文章
图像处理笔记(十八):模板匹配
查看>>
Educational Codeforces Round 60 D. Magic Gems
查看>>
c# 保存和打开文件的方法
查看>>
调用图灵机器人API实现简单聊天
查看>>
MATLAB indexing question
查看>>
MATLAB 求解最优化问题
查看>>
【转载】java InputStream读取数据问题
查看>>
网络基础Cisco路由交换四
查看>>
CloudFoundry基础知识之理论篇
查看>>
fatal error LNK1120: 11 unresolved externals
查看>>
测试工具类汇总
查看>>
WEB消息推送-comet4j
查看>>
安卓开发 数据存储
查看>>
贪心思维 专题记录 2017-7-21
查看>>
欧几里得与扩展欧几里得总结
查看>>
js的Prototype属性 解释及常用方法
查看>>
JavaScript 计时事件
查看>>
【Django】基于Django架构网站代码的目录结构
查看>>
(二)stm32之中断配置
查看>>
vim快捷键使用记录
查看>>