Javascript 使用setTimeout从垃圾邮件机器人程序中混淆表单

Javascript 使用setTimeout从垃圾邮件机器人程序中混淆表单,javascript,bots,spam-prevention,Javascript,Bots,Spam Prevention,这并不是一个真正的编码问题,因为我知道如何做,所以不需要更多的理论和代码,但我不确定还有什么地方可以问这个问题 我有一个防止垃圾邮件机器人看到我有一个表单的想法,但我不能在本地代码中测试。我可以让表单完全由javascript生成,然后在一秒钟超时后将其写入标记的内部html吗?看起来太容易了,所以这肯定是有原因的。我找不到哪里有人尝试过这个,测试了一段时间,所以我不知道它是否有效 因此,根据任何人对机器人如何工作的了解,他们还能看到我有一个表单吗,特别是如果js被混淆了的话?我想机器人永远不会

这并不是一个真正的编码问题,因为我知道如何做,所以不需要更多的理论和代码,但我不确定还有什么地方可以问这个问题

我有一个防止垃圾邮件机器人看到我有一个表单的想法,但我不能在本地代码中测试。我可以让表单完全由javascript生成,然后在一秒钟超时后将其写入标记的内部html吗?看起来太容易了,所以这肯定是有原因的。我找不到哪里有人尝试过这个,测试了一段时间,所以我不知道它是否有效


因此,根据任何人对机器人如何工作的了解,他们还能看到我有一个表单吗,特别是如果js被混淆了的话?我想机器人永远不会等着收到这个或检测html的变化,但它会在模糊的js中找到表单吗?

谷歌的搜索蜘蛛声称它可以在评估页面时运行一些/大部分JavaScript,所以我认为有理由期待至少一些垃圾邮件机器人现在可以这样做,将来更是如此


此外,一些垃圾邮件机器人实际上是使用真正的浏览器为微薄的收入工作的真人,因此总体而言,这在长期内不会起作用。

“我认为机器人永远不会等着收到这些信息或检测html的变化。”我认为这可能低估了垃圾邮件机器人的复杂性。我认为
setTimeout
中的
appendChild
应该像charmI一样工作。我不明白依靠谷歌最新的ReCAPTCHA实现等久经考验的方法有什么不对。您还必须假设这是非常不友好的,在呈现表单元素之前必须等待设置的延迟。我知道他们可以执行单击和其他javascript,基本上可以作为用户操作页面,但是冒牌用户会等待超时的结果吗?如果是的话,需要多长时间?@Bobh-我会等10秒。。。但是,您希望真正的用户等待那么长时间吗?表单设置为“不显示”,需要单击以显示它。我怀疑用户甚至会在页面加载的第一秒点击链接,如果他们点击了,就会返回一个空的部分。如果他们再次单击,就会看到它。如果有人在手动浏览页面,那么就我而言,他们是一个人,可以编写一个可接受的机器人来识别超时语句的存在,或者缩短它们,或者简单地等待所需的确切时间。真正的用户不会知道延迟的存在,并且可能会认为页面已损坏而离开你的页面,尽管人类垃圾邮件机器人和真正的用户一样可能会留下来。如果虚假用户可以在模糊的js中读取setTimeOut,那么它最有可能在js中读取表单本身。所以我猜上面的答案很可能是正确的。