我正在使用仅使用Javascript 进行字段身份验证的表单。我需要介绍垃圾邮件过滤器。我的问题是。
问题出现是因为垃圾邮件。作为一个附带问题。 机器人是如何工作的?他们只是禁用JavaScript 。这是一个蹩脚的问题。
表单的编码方式非常不正统,这意味着PHP脚本的代码更改将相当大,相当于设计新页面。
提前致谢。
答案 0 :(得分:1)
大多数机器人最好根据name
属性猜测要在表单字段中插入的值。例如, email-esque 值将插入<input type="text" name="email"/>
,而伟哥的广告将插入<textarea name="body" />
虽然阻止禁用JavaScript的用户会停止某些(大多数?)垃圾邮件,但您也可能会遇到阻止 真实 的风险用户无法使用您的网站;你想冒这个风险吗?
防止垃圾邮件最常见的方法是要求用户完成验证码;给他们一个难以破译的图像并要求他们写下这个词。许多网站都使用reCaptcha,但我只会在表单中包含reCaptcha作为最后的手段。
我最喜欢的防止垃圾邮件的方法之一是在表单(type="hidden
)中插入虚假,隐藏的输入字段,并为其指定email
,website
等名称普通用户不会为这些字段输入任何值,因为它们是隐藏的,但垃圾邮件机器人可能。
答案 1 :(得分:0)
您可以使用验证码,但这不会改善用户体验。
我喜欢使用的一个技巧是添加一个类似电子邮件的字段名称,然后使用css隐藏它,如果值仍为空,则检查服务器端。
答案 2 :(得分:0)
我是否应该引入服务器端脚本来解决垃圾邮件问题(更多工作)
是
如果禁用了JavaScript,则禁止用户提交表单?
你做不到。 (你可以放一些块,这会使他们提交它不方便,但是你无法控制人们发送给你服务器的数据。)
为已禁用Javascript的人(例如机器人)制作单独的表格
机器人是如何工作的?
他们发出HTTP请求并处理响应。
他们只是禁用JavaScript。
它们通常在首先不支持JavaScript的引擎上运行。
表单的编码方式非常不正统,这意味着PHP脚本的代码更改将相当大,相当于设计新页面。
听起来它在维护地狱,需要重构,以便将来可能需要进行任何更改或调试。