【问题标题】:Using .htaccess to block referrer spam使用 .htaccess 阻止推荐人垃圾邮件
【发布时间】:2015-06-23 21:46:33
【问题描述】:

我们的论坛经常被尝试自动注册的自动机器人锁定。

我们可以从错误日志中看到一个例子

[2011 年 4 月 3 日星期日 14:04:46] [错误] [客户端 70.183.110.133] 文件没有 存在: /home/spoilert/public_html/forum/++++++++++++++++++++++++++++++++++++++结果:+验证码+解码+(23+尝试);+注册+(注册+仅+模式+是+开启);, 推荐人: http://forum.spoilertv.co.uk/++++++++++++++++++++++++++++++++++++Result:+captcha+decoded+%2823+attempts%29;+registered+%28registering+only+mode+is+ON%29; [2011 年 4 月 3 日星期日 13:45:54] [错误] [客户端 70.183.110.133] 文件没有 存在: /home/spoilert/public_html/2008, 推荐人:

我已经用这段代码更新了我的 htaccess

SetEnvIfNoCase 引用 "^http://(W)decoded.*$" 被禁止
否定 来自 env=banned

它“应该”拒绝任何引用链接,其中包含解码的单词,但它似乎不起作用。我似乎仍然让其中一些机器人通过相同的 URL 通过,所以它似乎仍在发生。

【问题讨论】:

    标签: security .htaccess


    【解决方案1】:

    如果你把它改成

    SetEnvIfNoCase Referer ".*+decoded+.*" banned
    Deny from env=banned
    

    【讨论】:

    • 感谢 Bugfinder,我会试一试。我从来都不是很好的正则表达式,这让我很头疼:)
    • 真正复杂的正则表达式是一门黑暗的艺术,简单的东西是合理的,简而言之, .* 寻找最短的匹配,所以在某种程度上,代码所做的只是说有一个“+decoded+ " 在字符串之前/之后有一些东西。当我尝试与小组等一起工作时,我有时仍然会塞满东西,但这通常是因为我没有正确计算某些东西
    • 感谢您的额外解释,这对以后了解非常有帮助和有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2015-03-05
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多