如何防止注册表单被垃圾提交?仅可添加HTML且无法删除表单
可行的非JavaScript验证码方案
隐藏字段陷阱(Honeypot)
这是最轻量化的非JS反垃圾手段,无需用户额外操作。在表单中添加一个通过CSS隐藏的输入字段,正常用户看不到也不会填写,但垃圾机器人会遍历所有表单字段并填充内容:
<div style="display: none !important;"> <input type="text" name="fake_field" id="fake_field"> </div>
只要在表单提交的后端逻辑里判断这个字段是否有值——如果有内容,直接拒绝提交即可。
纯HTML数学题验证
给用户出一道简单的算术题,要求输入答案,完全依赖后端验证是否正确,不需要JS支持:
<div> <label>请计算:7 - 2 = </label> <input type="text" name="math_check" required> </div>
提交时校验输入值是否等于5,正确才允许通过。这种方法能拦截大部分不会解析简单数学题的垃圾机器人。
指令式字符验证
用纯HTML给出简单的文字指令,让用户按要求输入字符,比如:
<div> <label>请输入字符串「K3P9Q」的第1、4位字符:</label> <input type="text" name="char_check" required> </div>
用户需要输入「K9」才能通过,后端只需验证输入内容是否符合要求即可。这种方式依赖用户的理解能力,普通垃圾机器人很难解析这类指令。
内容的提问来源于stack exchange,提问作者wgw
相关产品推荐
相关产品推荐

