Javascript 检测到网站上的奇怪注册模式
我上周发布了我的第一个web应用程序(Javascript 检测到网站上的奇怪注册模式,javascript,node.js,bots,spam-prevention,Javascript,Node.js,Bots,Spam Prevention,我上周发布了我的第一个web应用程序(node/express后端,运行在Heroku服务器上),我已经在日志中看到了一些奇怪的注册行为 起初,我以为这是真正的用户,但同样的模式已经发生了很多次,很明显它是某种垃圾邮件机器人 我的网站包含一个注册表单,需要名,姓,电子邮件,密码1和密码2(必须匹配)。在提交表单时,用户必须单击其他按钮以选择他们希望注册的帐户类型,并向提供的地址发送电子邮件进行验证 在过去的几天里,我收到了很多(大约10个)可疑的注册,浏览模式如下(昨晚的两个例子): 在任何情况
node/express
后端,运行在Heroku
服务器上),我已经在日志中看到了一些奇怪的注册行为
起初,我以为这是真正的用户,但同样的模式已经发生了很多次,很明显它是某种垃圾邮件机器人
我的网站包含一个注册表单
,需要名
,姓
,电子邮件
,密码1
和密码2
(必须匹配)。在提交表单时,用户必须单击其他按钮以选择他们希望注册的帐户类型,并向提供的地址发送电子邮件进行验证
在过去的几天里,我收到了很多(大约10个)可疑的注册,浏览模式如下(昨晚的两个例子):
在任何情况下,用户
都有:
表单
数据并提交表单。在任何情况下,firstname
和lastname
都是毫无意义的、看似随机的字符串(例如firstname:'iluuuxpmv',lastname:'Yrtkaugn'
和firstname:'Qatocgyp',lastname:'Hdfurawghgkqs'
)用户
然后导航到登录页面并尝试连续两次重置密码用户
然后导航到一个特定的博客帖子五次<input type="hidden" value="" name="email" id="email" placeholder="Enter your email...">
<input type="email" value="" name="eee" id="eee" placeholder="Enter your email...">
机器人将搜索任何字段并尝试输入有效输入以成功提交。因此,机器人会找到现在隐藏的假字段“email”并填写它,但是普通用户应该看不到该字段。因此,当表单提交时,只需检查隐藏字段中是否有空字符串以外的值
确保没有相等的输入
很多垃圾邮件机器人只是在每个输入中输入相同的值。虽然您给出的示例似乎并非如此,但这是经常发生的情况。他们可能只是输入iamafakebot@fakeemail.com
关于名字、姓氏、电子邮件和密码-假设这将允许根据预期字段成功提交
因此,您可以比较提交的值,如果它们彼此相等,则无法提交表单,甚至无法显示用户可读的消息
结论
这可能无法从整体上解决您的问题,因为安全性是一个庞大的主题,有许多不同的观点和不断更新的条件-但是,这些至少会为您的应用程序增加一些额外的安全性
希望其中一个适用于您的场景,并且您的系统中看到的机器人越来越少。在登录时放置验证码或要求进行一些数学计算如何?防止它的目的是什么?@brk-如果这是最好的方法,那么我想我可以研究一下,但对我来说,这似乎总是一个糟糕的用户体验@阿切尔:这是个好问题。我想主要是因为我担心这会扩大规模(每天10000个假注册),这会让我的数据库充满未经验证的用户。我还担心电子邮件地址是真实的,我会因为垃圾邮件而被举报,我的发件人分数会降低。不幸的是,你无法用真实的电子邮件地址来处理虚假注册,但这种情况不太可能经常发生。至于数据库,只需删除一两天后尚未验证的注册用户。每天做一次(有计划的任务),这样可以防止垃圾进入系统
<input type="hidden" value="" name="email" id="email" placeholder="Enter your email...">
<input type="email" value="" name="eee" id="eee" placeholder="Enter your email...">