【问题标题】:htaccess - block traffic WITH specific get requesthtaccess - 通过特定的获取请求阻止流量
【发布时间】:2014-06-26 01:31:05
【问题描述】:

我每秒收到最多 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]`

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite


    【解决方案1】:

    像这样调整你的第二个块规则的正则表达式:

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

    【讨论】:

    • 这行不通。我实际上只需要定位那个特定的许可证号。就是他们打的那个。我希望其他人能够顺利度过。
    • 好的,检查更新的规则以针对特定的许可证506e284d78dyd7dyd5d4d3f07d
    • 好的,当我执行 querystring test=true 但不是他们的实际请求时,您的代码有效。我得弄清楚为什么。
    • 如果你告诉我你在实际请求中得到了什么确切的 URI,我可能会提出一些建议。
    • 我通过定位用户代理让它工作了。你的帮助很棒。
    【解决方案2】:

    我将第一条规则更改为:

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

    并删除第二条规则。

    • 由于soomaalidamaanta 在请求中,在我看来您不需要第二条规则。
    • 无需检查.net.com,一个条件可以找到任何一种方式
    • 在规则中,^ 就足够了,不需要.*

    【讨论】:

    • 他们仍然经常打。
    【解决方案3】:

    我最终发现了如何通过用户代理进行阻止,并且由于该用户代理指定了相关站点,因此我阻止了它并且它现在可以正常工作了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 2021-12-15
      • 2019-11-09
      • 1970-01-01
      相关资源
      最近更新 更多