htaccess - 使用特定的get请求阻止流量

时间:2014-06-25 00:08:06

标签: wordpress apache .htaccess mod-rewrite

我被一次获取请求的次数达到每秒20次。这是一个wordpress站点,这是一个附加的apache日志

108.162.216.170 - - [24/Jun/2014:16:42:26 -0700] "GET /?edd_action=check_license&license=506e284d78dyd7dyd5d4d3f07d&item_name=FILE+Name HTTP/1.1" 200 526 "-" "WordPress/3.9.1; http://soomaalidamaanta.net"

这是我的htaccess,但我没有运气阻止它。

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} soomaalidamaanta\.com [NC,OR]
RewriteCond %{HTTP_REFERER} soomaalidamaanta\.net
RewriteRule .* - [F]

order allow,deny
deny from 68.171.211.157
allow from all

RewriteEngine On
RewriteCond %{QUERY_STRING} /?edd_action=check_license&license=506e284d78dyd7dyd5d4d3f07d&item_name=FILE+Name [NC]
RewriteRule .* - [F]`

3 个答案:

答案 0 :(得分:2)

调整你的第二块规则的正则表达式如下:

RewriteCond %{QUERY_STRING} edd_action=check_license&license=506e284d78dyd7dyd5d4d3f07d&item_name=FILE [NC]
RewriteRule ^ - [F]

答案 1 :(得分:1)

我将第一条规则改为:

RewriteCond %{THE_REQUEST} soomaalidamaanta [NC]
RewriteRule ^ - [F]

并删除第二条规则。

  • 由于soomaalidamaanta在请求中,因此我认为您不需要第二条规则。
  • 无需检查.net.com,一个条件可以找到它
  • 在规则中,^就足够了,不需要.*

答案 2 :(得分:0)

我最终找到了如何通过用户代理阻止,并且由于此用户代理指定了相关网站,因此我阻止了它并且它现在正在运行。

RewriteEngine On
#RewriteCond %{HTTP_USER_AGENT} Chrome [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} soomaalidamaanta [NC] 
RewriteRule .* - [F]