有时候想安全,就得牺牲掉一些用户体验,而一些更好的用户体验会牺牲掉一定的安全性,所以安全性与用户体验有时候是一对矛盾体,得想办法做tradeoff。
比如说验证码,CAPTCHA,现在很多网站在登陆或者提供的其它服务会让用户输入验证码来验证操作是由人发出的,而不是robot发出的,前提是robot无法破解你所采用的验证码。而这样所有的登陆操作,不管是人还是robot都会面临验证码,也就是说为了防止robot,让真正的人去输入验证码,给人增加了一定的负担。
而如果不让输入验证码,那么所有的robot又都等顺利的模拟操作,那么最后的结果是采用验证码。
这是0和1的思维,其实可以换一种思路,我们现在的目的就是为了防止robot,所以如果我们能判定是robot,那么我们就给他展示CAPTCHA,如果不是robot,就不展示CAPTCHA,当然这是理想情况。所以说关键是怎么检测出robot,一般会放一些robot detection service来处理所有的请求,然后进行分析,动态调整参数,比如可以根据IP地址,fingerprint,如UBID等。然后来一个请求