0

我想到了一种简单的方法来保护我的表单免受垃圾邮件机器人的侵害。如果您认为足够,我想与你们核实一下。它只是一个联系表格,所以我不需要极高的安全性,这样电子邮件地址就不会被发送垃圾邮件。

假设我像这样构建表单:

<div id="unlock">Click 3 times to unlock the form</div>

<form action="url">
<input type="email" />
<textarea></textarea>
</form>

然后用一个简单的 javascript/jQuery 检查 #unlock 是否被点击了 3 次。如果是这种情况,我只需将 name 属性添加到表单元素,如下所示:

$('input[type=email]').attr('name', 'senderEmail');

我所做的假设是机器人将无法正确提交表单,因为它不知道表单元素的名称。当然我会检查服务器上的表单值是否正确,如果不正确,则不会提交表单。这个假设正确吗?我想可以做同样的事情,而是将 action 属性添加到表单标签?!这样机器人不应该知道接收 URL?!

就像我说的,我没有保护任何超级重要的东西,但我只想阻止“通用”垃圾邮件机器人。

4

4 回答 4

1

我以前尝试过类似的东西。我很惊讶它并没有阻止我的收件箱收到垃圾邮件(我只安全了大约两个月)。

我认为,如果您的网站引起了足够的关注,那么某个地方的某个孩子将获得几美元的报酬来编写一个快速脚本来击败您设计的任何安全措施。

我建议在用户可以使用该表单之前使用 OpenId 对人员进行身份验证。我知道它也不是 100% 安全的,但它比这种机器人检测方法更安全,而且比验证码更不烦人。如今,每个人都在至少几个主要的 OpenId 身份提供商中拥有帐户。

于 2013-05-10T13:40:24.573 回答
1

有不同的解决方案可以防止垃圾邮件机器人:

  • 验证码
  • 蜜罐(添加一个不显示的字段(显示:无但不是类型=隐藏),如果这个字段被填满,你在服务器端就知道它是一个机器人
  • 检查请求和响应之间的时间(人类将阅读页面、填写表格等)
  • 通过javascript构建并提交表单(正如你所做的那样)
于 2013-05-10T13:47:54.157 回答
0

我看不出这不起作用的任何原因?当然,人类可以轻松地阅读您的脚本并弄清楚发生了什么,然后为机器人提供正确的输入名称。

于 2013-05-10T13:42:02.880 回答
0

看起来你走上了一条好路,也许你应该添加一些随机化,这可能有助于防御 Regan 所说的内容。

祝你好运!

于 2013-05-10T13:43:19.257 回答