Chrome 用户反馈提交表单提示「检测到异常」,同一份表单在 Safari 里正常,日志里蜜罐字段的值是用户自己的邮箱。乍看像缓存或者权限的锅,追下去往往不是。
.hp-field {
position: absolute; left: -9999px;
width: 1px; height: 1px; overflow: hidden;
}
追下去是这么回事:蜜罐字段名写成了邮箱,又只用了隐藏属性,Chrome 的自动填充按字段名匹配,把真实邮箱填了进去。服务端看到非空就当机器人。
「蜜罐字段误伤」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
具体做法是,蜜罐字段改用不常见的名字,别用邮箱、电话这类;用绝对定位移到屏幕外,别用隐藏属性;提交时记录蜜罐字段值,误判的样本单独看。
验收就看一点,Chrome 自动填充后提交不再被拒,日志里蜜罐字段保持为空。
