2013-05-10 68 views
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次。如果是这样的话,我只是名字属性添加到表单元素,就像这样:

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

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

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

+0

为什么不使用reCaptcha?那么你不必担心超越机器人。 – 2013-05-10 13:41:12

回答

1

我已经尝试了一些完全一样的东西。我很惊讶,它没有让我的收件箱得到垃圾邮件(我只是安全了大约两个月)。

我认为如果你的网站引起足够的重视,某个地方的某个孩子会花两美元来写一个快速脚本来击败你设计的任何安全性。

我建议在用户使用该表单之前使用OpenId对用户进行身份验证。我知道它也不是100%安全的,但它比这种机器人检测方法更安全,并且比验证码更令人讨厌。最近,每个人都拥有至少一些主要OpenId身份提供者的账户。

0

我看不到任何原因,为什么这不应该工作?当然,一个人可以很容易地阅读你的脚本并找出发生了什么,然后用正确的输入名称给一个机器人喂食。

0

看起来好像你在一条好路上,也许你应该添加一些随机化,这可能有助于防御雷根正在谈论的内容。

祝你好运!

1

有的不同的解决方案,以防止垃圾邮件程序:

  • 验证码
  • 蜜罐(添加不被显示的场(显示:无但不是type =隐藏),并且如果这个字段被填充,你知道在服务器端,它是一个机器人
  • 检查时间之间的请求和响应(人类将读取页面,填写表格等)
  • 建立并通过JavaScript提交表单(如你'重做)