`

(转)apache与nginx防御webbench等工具攻击

 
阅读更多
http://lobert.iteye.com/blog/1936406
webbench是一个普遍的压力测试工具
Shell代码  收藏代码
webbench -c 1000 -t 30 url 
大量的并发,耗费服务器资源。导致打开url缓慢,甚至服务器down机。


实:apache与nginx可以通过http_user_agent这个系统变量来做处理

apache添加rewrite规则:


nginx在server里添加判断

if( $http_user_agent ~ "webbench(.*)"){ 
     return 403; 


FLAGS属性

mod_rewrite用”FLAGS”来建立重写条件以及其他属性。我们用中括弧将FLAGS包起来,放在条件或者是规则的末尾,用逗号将多个FLAGS分隔。以下列表是你需要熟悉的几个主要FLAGS:

last|L -[L]告诉Apache服务器一系列的条件或者是规则将在它出现后结束,换句话说就是[L]不出现,mod_rewrite将会一直执行。



nocase|NC -[NC]告诉Apache服务器忽略正则中的大小写,它经常被用到{HTTP_HOST}服务器参数上,因为域名里面是不会区分大小写的。



redirect|R -[R] 经常引用到触发可见的定向。默认情况下它是一个HTTP 302的临时重定向,但是你可以注明具体的HTTP 代码,比如你可以用[R=301]来表明这是一个永久重定向,这对搜索引擎抓取你重定向后的网页相当有用。



qsappend|QSA -[QSA] 用于添加新的查询参数。你可以在原查询参数后面定义新的查询参数,但命名时注意不要重复已存在的参数名。错误的引用[QSA]将会破坏原来的查询参数导致重定向错误。



forbidden|F -[F]告诉Apache响应请求时不提供页面。其原理就是Apache会发出一个403 HTTP相应,可以保护网站不被未经授权的或者其他盗链访问。



ornext|OR -[OR] 作为默认值[AND]的反义词,可以通过逻辑关系将一系列重写条件组合起来。



next|N -[N]可以让你的重写条件循环匹配,当你不知道{REQUEST_URI}有多少字符进行匹配的时候很有用。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics