现在登录很多都有滑块验证,但是发现,很多组件是纯前端的,不需要和服务端交互,那这个有啥意义呢?除了增加人登录麻烦,程序刷接口不是还是防不了吗,这不是为了做而做吗?
现在登录很多都有滑块验证,但是发现,很多组件是纯前端的,不需要和服务端交互,那这个有啥意义呢?除了增加人登录麻烦,程序刷接口不是还是防不了吗,这不是为了做而做吗?
个人觉得有一定意义的,虽然说它不需要与服务端进行交互。而且对于防止程序刷接口的攻击可能效果有限,但是,对于防止机器人自动化攻击和账号暴力破解仍然是有一定效果的。
以思否社区为例,这段时间经常看到有人在反馈,吐槽思否社区访问时候会有验证操作,比如说这样
我们都知道,纯前端的滑块验证主要通过模拟用户行为来判断是否为真实用户,拖动滑块、点击按钮等操作。虽然这些操作可以被脚本模拟,但是相对于直接发送请求的自动化攻击,使用滑块验证会增加攻击者的复杂度和成本,因为攻击者需要编写更复杂的脚本来完成这些操作。所以在复杂度门槛上增加了一些,当然对于用户心理其实也有一定提升。
总体来说,意义不大,但并不是完全没有。
回到源初的问题,为什么登陆模块要有滑块验证。我觉得可能有以下的几个原因:
第二个问题是纯前端验证能不能防止上面的问题?答案是当然不能。
但是我们要看和什么对比,如果和完全没有验证的状态(也就是现在)对比,我相信还是好了一些。比如你是一个 hacker,你在查看这个网站的时候考虑是否能利用这个接口,一般是从 UI 开始的,如果看到一个看起来难度比较高的验证码系统,可能你连打开 debugger 的想法都没有了。
另外就算是一个完整的验证功能其实也不能防止破解。这些策略都是有成本和取舍的。
答案就是没有意义,为了做而做。
实际上现在基本上没有纯前端的滑块验证码了,有的很小一部分就是设计和开发人员为了完成任务做的,有一部分是别人的练习项目,被人直接抄过来用了。
现在做滑块验证,基本是对接第三方,在滑块和点击验证的时候,捕捉用户的鼠标和键盘行为,然后将数据行为请求第三方分析校验人机,再将结果返回前端显示。
这种验证码都不用自己做了,每年缴纳一定的费用,只需要简单前后端集成下就可以了。
而且当把这种带鼠标键盘分析的校验拿出来说也没有多少意义,一定要后端接口也要做校验,前后端一起做,才能最大限度的加强系统安全,增加黑客入侵成本。
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
5 回答1.3k 阅读✓ 已解决
从技术角度和安全策略来看的话,确实毫无意义 —— 不会给你的网站安全性上带来任何提升,并且只会影响正常用户的使用体验、而对爬虫没有影响。
但如果从应付甲方、糊弄老板、提升自己的工作产出 KPI 等方面考虑,则
意义非凡(划掉)。P.S. 大部分开源组件都是 JSer 自己写的,仅仅只是为了演示个 UI 效果而已,并不是为了让你拿来直接放到项目里用的。
【回答补充】
一个暴论:任何在此问题下回答“仍有一定防爬虫意义”的人,都是没有任何在实际项目中对抗过爬虫的经验的。当然了,这种人其实挺“可爱”的,正是我原回答里提到的那种你可以随便就糊弄过去的“甲方/老板”们 —— 躺着收钱的活儿谁不爱干呢 😂
“
回到源初的问题,为什么门要装门锁。我觉得可能有以下的几个原因:
第二个问题是一个用纸糊的门锁能不能解决上面的问题?答案是当然不能。
但是我们要看和什么对比,如果和什么都没有的状态对比,我相信还是好了一些。比如你是一个 thief,你在踩点的时候考虑是否能进入房间,一般是从房门开始的,如果看到一个看起来难度比较高的门锁,可能你连打开工具箱的想法都没有了。
另外就算是一个真正的门锁其实也不能完全防止被撬。这些策略都是有成本和取舍的。
”
(手动滑稽)