javascript - 如何防止表单上出现垃圾邮件

标签 javascript php jquery forms spam-prevention

我有一个简单的表单,用户可以用它来注册新闻通讯的电子邮件地址。

我想防止垃圾邮件发送者提交 000 封虚假电子邮件。最好的方法是什么?

我考虑过将每个 IP 地址的输入数量限制为每小时 60 个,但后来认为任何确定的人都会简单地欺骗其 IP 作为攻击的一部分。

有什么想法吗?

*编辑:我正在寻找服务器端解决方案。在这种情况下,用户体验很重要,因此我不想使用验证码,或要求用户使用 token 进行验证

最佳答案

您可以使用否定验证码。想法是有一个人类不可见的字段,但机器人可以在其中输入值。在服务器端,您可以忽略在负验证码字段中具有值的请求。

优点是普通用户看不到任何额外的步骤,例如输入验证码或验证电子邮件。缺点是,只要人们不会专门为您的网站定制机器人,该方法就有效。

否定验证码的示例。将其包含在您的表单中。

<div style="position: absolute; left:-2000px;"><input type="text" name="email_name" value="" /></div>

在服务器端做类似的事情

if (params[:email_name] != "") //bot
else //not a bot

关于javascript - 如何防止表单上出现垃圾邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938405/

相关文章:

php - 如何从数据库获取浮点解析值?

php - 获取mysql中存储过程的数组输出

javascript - jQuery.proxy() 用法

javascript - 在 Javascript 中绘制多条三 Angular 形线

javascript - 加载 web View 中的 NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9814)?

javascript - 在javascript中获取textarea html的值

php - 根据相同的键连接数组值

javascript - 尽管设置为显示 block ,但 Bootstrap 模态未显示

javascript - 使用 javascript/bootstrap 时在单击时更改按钮图标

javascript - 如何解决Jquery滑动面板问题?