生命不息
折腾不止

防CC攻击经验分享(一):简单的防止wordpress的pingback攻击

这个教程是 K 总在 hostloc 提供的: http://www.hostloc.com/thread-312816-1-1.html

对于防 cc 我也是初学者,分享的内容有问题欢迎大家指出 ~ 感谢

例子:

cc 攻击难防在与他的行为和正常用户的行为很相像,如果规则严格了,可能正常的用户就会受影响,如果规则松了可能就起不到防御的作用。

pingback 之所以算是比较低级的 CC 攻击的原因就在与他的特征非常明显,很容易和正常用户的行为区分开,所以也更加容易被防御。

就是上次我网站遭受的大量 pingback 的攻击。网站日志有大量的如下内容:

QQ图片20160703022301

代码:

if ($http_user_agent ~* (ApacheBench|pingback|WordPress|MJ12bot|AhrefsBot|360JK|PHP|php|Jorgee) ) {return 101;}
if ($http_user_agent = "" ) {return 101;}
if ( $request = "POST /reg.html HTTP/1.1" ) {return 400;}
if ( $request = "POST / HTTP/1.1" ) {return 400;}
if ( $request = "POST / HTTP/1.0" ) {return 400;}
if ( $request = "POST // HTTP/1.0" ) {return 400;}

代码的作用

这段代码的作用是 nginx 检测到相应的条件,就把这个请求直接转出。避免请求数据库和 php ,减轻服务器的处理负担。由于 nginx 处理静态内容的效率很高,所以可以最大限度的避免服务器资源被耗光。

代码插入的位置

上面这个代码需要插入的位置是 nginx 网站的 server 配置里。比如

QQ图片20160703021132

代码的问题

  1. 不过这里有个问题就是过滤词里面保护了 WordPress ,所以 ifttt 之类的同步用不了。如果你发现用了以上代码后,有些功能失灵,那么就检查下过滤的关键词。如果你想过滤更多的内容也可以加入更多的关键词。
  2. 还有一个问题就是,虽然 nginx 过滤了这些 pingback 请求,但是如果你的服务器比较垃圾。。比如只有 1 核的 cpu ,那么还是极其容易 nginx 占用到 100% 从而导致网站访问不了。所以最终是拼性能。。
赞(1)
未经允许不得转载:91云(91yun.co) » 防CC攻击经验分享(一):简单的防止wordpress的pingback攻击

留言 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    nginx占用到100%,是不是因为要做 101 处理,如果直接 403 拒绝行不行?就像这篇拦蜘蛛一样 http://zhangge.net/4458.html
    再配合 iptables 限制单 IP 对 80或443的连接数

    新手司机8年前 (2016-07-07)回复
    • 不管是403还是101,都需要nginx给出处理和回应,其实结果是一样的。nginx占到100%还是cpu性能太弱。

      91yun8年前 (2016-07-07)回复
  2. #0

    WordPress里不是能直接关闭吗?

    老司机8年前 (2016-07-07)回复
    • 我后面看下wordpress的机制,但是我猜即使只是关闭后台,还是会通过php请求数据库判断是否关闭的。

      91yun8年前 (2016-07-07)回复