【问题标题】:do you need captcha validation in newsletter subscription?您需要在时事通讯订阅中进行验证码验证吗?
【发布时间】:2016-12-08 21:13:09
【问题描述】:

我正在使用自定义验证码 php 脚本以及新闻信函脚本,让用户使用电子邮件 ID 进行订阅。注册方法基于jQuery.post命令。

我的问题是,如果我从订阅脚本中删除验证码,我真的安全吗?订阅很简单。例如

mydomain/subscribe.php?email=myemail@somedomian.com

subscribe.php 与电子邮件一起作为参数使用 jQuery.post 命令被调用。我是网络编程的新手,对垃圾邮件发送者与上述场景的联系并不多。任何建议将不胜感激。

谢谢

【问题讨论】:

    标签: php jquery captcha


    【解决方案1】:

    垃圾邮件机器人会填写他们可以拿到的所有表格。

    我每天都会收到来自机器人的订阅,并且我正在慢慢地将验证码添加到所有表单中。

    机器人不知道他填写的表格是订阅、联系表格还是群发邮件机会。

    如果您不使用验证码或将某些逻辑转移到 javascript 函数中来保护自己,您将向所有这些地址发送电子邮件。

    这会增加您的流量,降低您对订阅者的控制,弄乱您的统计数据,有时您可能会向不想订阅的用户发送电子邮件,因为机器人通过诡计(即 realuser+ buy-viagra-now@gmail.com 也到达用户 realuser@gmail.com)。

    所以我的建议是:使用验证码 或者:修改您的表单以更多地使用 javascript(即通过 ajax 加载表单),因为机器人不是使用浏览器的普通用户,它们只是模拟它们

    【讨论】:

      【解决方案2】:

      我从未听说过垃圾邮件订阅列表。
      垃圾邮件发送者以发送自己的垃圾邮件而闻名,而不是订阅别人的 %)

      【讨论】:

        【解决方案3】:

        从我只读过的答案来看,favo 是真的。垃圾邮件机器人是一种计算机程序,很可能会在 google 中逐个运行,并在您的页面中搜索任何输入框和提交按钮。

        我有处理垃圾邮件和订阅的经验,但添加验证码可以减少订阅量。暂时将其关闭,如果您可以在将电子邮件添加到邮件列表之前对其进行审核。如果您发现自己收到了很多垃圾邮件,请继续并设置验证码。但实际上每周一两封垃圾邮件是正常的。

        所以,我建议适度,直到它变得荒谬为止。

        【讨论】:

        • 真正的问题是,如果您被垃圾邮件轰炸,您将很难区分真正的人类用户和垃圾邮件用户。然后稍后您必须向数据库中的所有电子邮件发送邮件。进行验证码验证很好,但对于订阅的最终用户来说可能有点烦人。谷歌搜索显示大多数网站订阅都没有验证码。现在我不知道他们是否使用任何其他方法/技术来过滤垃圾邮件。
        • 好吧,通常您使用双重选择加入,这意味着您将向新订阅者发送一封包含激活链接的电子邮件——这也有助于过滤错误订阅和垃圾邮件机器人
        【解决方案4】:

        取决于。对于一般的恶意订阅尝试,您可能是安全的,但对于专门针对您的注册的那些尝试则不是。我个人不会冒险。大多数订阅者是否抱怨注册过程困难?

        您考虑移除验证码的动机是什么?

        【讨论】:

        • 没有动机或类似的东西。我是这个东西的新手,想知道我是否走在正确的轨道上。
        【解决方案5】:

        通过删除验证码,您基本上可以允许机器人订阅。

        他们为什么想要 - 取决于您的内容。如果新闻信不包含链接,或者只包含指向其他非交互式(或验证码保护)资源的链接,那么您很好。

        如果您的新闻信中包含指向机器人可以去向其他人发送垃圾邮件的资源的链接,那么他们很可能会这样做。

        【讨论】:

          【解决方案6】:

          我过去做过的一些简单的事情是添加一些隐藏字段。大多数机器人都会填写这些内容,普通用户无法填写,因此您只需输入一些逻辑,说明隐藏字段是否包含数据根本不执行任何操作。

          它不是万无一失的,但它确实阻止了我实施它的网站上的大量机器人注册。

          【讨论】:

            【解决方案7】:

            我正在使用这样的代码:

            jQuery.post("php/varify_captcha.php", jQuery("#contact_form").serialize(),function(result, status){
            if(status == "success"){
            jQuery.post("php/send_mail.php", jQuery("#contact_form").serialize(),function(result, status){
             alert(status);
            }
            }
            }
            

            首先验证验证码,然后发送邮件。我的问题是我应该将验证码验证移到“send_mail.php”中吗?我不知道垃圾邮件及其阅读和执行代码的能力。如果是,那么他们可以直接调用“send_mail.php”。如果上述方法是安全的,请告诉我,或者我应该将验证码验证移到“send_mail.php”中以使代码更安全。

            【讨论】:

              猜你喜欢
              • 2011-03-31
              • 2020-06-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-02-09
              • 2015-08-25
              • 2012-02-21
              • 1970-01-01
              相关资源
              最近更新 更多