即使我有reCAPTCHA,垃圾邮件发送者也可以发送他们的东西

时间:2012-03-11 14:52:56

标签: recaptcha spam

我的reCAPTCHA有一个很大的问题!即使我在我的网站上“安装”了reCAPTCHA,垃圾邮件发送者也可以发送他们丑陋的东西。我已经为reCAPTCHA创建了一个自己的皮肤,我已经引用了他们的维基以确保我做的一切都正确,但遗憾的是出了问题。

以下是我的表现:

表格     

    <!-- reCAPTCHA -->
    <div class="paddingbottom-5">
        <div style="border: 1px solid #d1d1d1; width: 300px;">
            <div id="recaptcha_image"></div>
        </div>
    </div>


    <!-- reCAPTCHA: Textfield -->
    <input type="text" name="recaptcha_response_field" id="recaptcha_response_field" tabindex="5">

    <!-- reCAPTCHA: Reload -->
    <a href="javascript:Recaptcha.reload()" class="noborder-link">
        <img src="'.ICON.'arrow-circle-double-135.png" alt="" class="image-icon-right">
    </a>

</div>

配置(存储在require_once('configs/required/classes/class.recaptchalib.php');下方与表单相同的文件中)

$response = recaptcha_check_answer(
    CAPTCHA_PRIVATE,
    IPADDRESS_NOHASH,
    $_POST['recaptcha_challenge_field'],
    $_POST['recaptcha_response_field']
);

CAPTCHA_PRIVATE包含我的reCAPTCHA私钥,该私钥与正确的地址(duh)相关联。 IPADDRESS_NOHASH看起来像这样:define('IPADDRESS_NOHASH', get_realip());。函数“get_realip()”如下所示:

function get_realip() {
    if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];

    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }

    return $ip;
}

我在JavaScript中也有这个函数来应用我的自定义主题:

var RecaptchaOptions = {
    theme : 'custom',
    custom_theme_widget: 'recaptcha_widget'
};

我已经使reCAPTCHA(class.recaptchalib.php)的类文件更漂亮(它现在具有与表单结构相同的结构,例如)并且我还删除了属于MailHide API的所有内容,因为我不要使用该API - 仅使用reCAPTCHAs API。

怎么了?我错过了什么吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

Recaptcha绝对不会被垃圾邮件队破坏。我从头开始在12小时内自行开发了OCR解决方案,并且能够打破reCaptcha和Yahoo-Captchas。 (在Python,C和Java中,只使用第三方库来读取jpeg / gif / png。)实际上,对于一个优秀的程序员来说,这是一项简单的任务。

无论如何,reCaptcha将停止“初学者”。

摆脱垃圾邮件的最佳方法是在您的网站上添加一些蜜罐。通常,这是最好的。当然,这样的定制解决方案需要一点时间,但肯定不会超过一天。

蜜罐有许多(简单)技巧,您可以在Google上找到它们。对于例如隐藏文本字段(使用css)等。就我而言,我根本不需要验证码,因为我添加了一个带有几行代码的僵尸陷阱。

祝你好运! :)

答案 1 :(得分:0)

1)我假设你已经测试过所有内容,以确保当有人未能输入验证码时它会正确拒绝帖子/其他内容?

2)您也可以尝试生成新密钥。您的密钥可能已被破坏/破坏,并且创建新密钥可能会使垃圾邮件消失。

3)与大量的recaptcha系统合作后,最终我最终将其关闭并安装了一组更好的验证码问题,这些问题可以为可能会访问您网站的人提供简单的答案,如果可能的话,这对垃圾邮件发送者来说仍然很难。例如,如果您有一个关于“赛车”的网站,那么请提出您的用户可能会知道的问题,例如“2011年赢得Indy 500的驱动程序名称是什么”。是的,它很容易研究,但是垃圾邮件背后的人可能不会花时间,大多数用户可能已经知道了答案。在我的系统上实现类似的问题集(并测试它们!!!)后,我的垃圾邮件几乎没有任何内容。

Recaptcha是一个很棒的概念,但似乎不再有用了。在这里插入一声叹息......