正则表达式验证,以防止垃圾邮件注册?

时间:2014-06-16 21:10:41

标签: php html regex html5 validation

我在注册表单中添加了一个输入字段,用于通过正则表达式验证值,以避免垃圾邮件自动注册。我不知道它是否会起作用,或者垃圾邮件机器人会通过它。

这是我的代码:

        <label>Type "Word" in the field*</label>
        <input  pattern="(Word|word)" type="text" name="antispamfield"
        id="antispamfield" required/>

用户现在必须输入“word”才能完成注册。但是,垃圾邮件是否会通过验证?有没有人有更好的想法,而不是使用正则表达式或JavaScript?

3 个答案:

答案 0 :(得分:2)

  

垃圾邮件发送者可以通过验证吗?

是。容易。

如果浏览器可以读取“秘密词”(显然它可以),那么垃圾邮件发送者可以阅读它:它显然存在于他的curl(或等效的)输出中。

因此,他可以调整他的脚本以阅读<label>Type "Word"</label>字段中的字词,并自动在antispamfield文字输入字段中输入该字词。

其他想法

有许多方法可以抵御垃圾邮件制造者。它们都不是完美的。其中一些是:

  1. 提交前保存在会话中的令牌。如果你在没有正确令牌的情况下收到提交,那就太可疑了。
  2. 控制每个时间段的每个IP地址的评论数。
  3. 要求用户在他或她发表评论之前对其进行记录。
  4. 验证码,例如ReCaptcha
  5. Are you Human?挑战
  6. 其中一些需要数据库。

答案 1 :(得分:1)

您可以在验证中使用验证码(http://www.captcha.net/)。我认为这比你的强大得多。另外,只需注意:您可能希望在您的模式中包含“WORD”,因为有些人会为此类验证输入所有大写字母。

答案 2 :(得分:-1)

我会使用一些文字问题,大多数机器人很难猜到,比如“谁是美国第二任总统?”并在发送表单时通过服务器脚本检查答案。

相关问题