【问题标题】:php - How can I protect our site from email subscription spamming?php - 如何保护我们的网站免受电子邮件订阅垃圾邮件的侵害?
【发布时间】:2014-09-10 17:48:56
【问题描述】:

我们的网站有用于服务启动通知的电子邮件输入字段。我们不将其用于时事通讯,仅用于通知。所以我测试了我们网站的基本漏洞,发现我们的电子邮件列表充满了垃圾邮件地址。

我有这种 php 代码来防止垃圾邮件,但它们仍然以某种方式通过: (我有 html 表单、电子邮件输入和必需的复选框输入)

if(isset($_POST['submitbutton'])){
    if(filter_var($_POST['emailinput'], FILTER_VALIDATE_EMAIL) && isset($_POST['checkbox'])){
        $email = $_POST['email'];
        @file_put_contents('../outofpublicrootdir/emaillist.txt', $email . ";\n\r", FILE_APPEND);
        $mailnotifysend = 'You have been added to our notify list!';
    }
}

你能帮我吗?

【问题讨论】:

    标签: php email spam-prevention


    【解决方案1】:

    答案是简单地使用验证码,例如http://www.google.com/recaptcha/intro/

    您还可以使用一些名为“电子邮件”等的字段并将它们隐藏在 css 中,然后检查 php,如果它们已填充,则忽略提交。

    100% 确保您允许所有正确的电子邮件使用基于 RFC 的正则表达式,您可以找到 here

    【讨论】:

      【解决方案2】:

      虽然验证码会减少垃圾邮件,但它肯定也会减少合法注册。

      您可以改为使用一些简单的不引人注意的步骤。

      • 在 html 中重命名表单字段 - 为电子邮件字段命名 “名字”或类似名称,并有另一个名为“电子邮件”的字段,即 你用 css 隐藏(不要让它 type=hidden,因为这是一个赠品 对于垃圾邮件)

      • 创建一个随机令牌,通过 ajax 调用将其保存到 $_SESSION 中,将其放入隐藏字段,并在提交时确认它们匹配 - 通用垃圾邮件机器人很少解析 javascript

      【讨论】:

        【解决方案3】:

        您可以在输入电子邮件通知时尝试使用验证键。例如,生成一个随机代码,那么用户在提交电子邮件之前应该正确填写代码。您还应该将此功能添加到您的代码中。

        【讨论】:

          猜你喜欢
          • 2012-02-21
          • 2010-10-03
          • 2011-04-09
          • 1970-01-01
          • 2010-09-23
          • 1970-01-01
          • 2017-01-23
          • 2012-02-15
          相关资源
          最近更新 更多