因为自动化程序,能创建无数个虚假程序,所以账号密码登录方式越来越少
验证码可以被攻击者加ocr识别(optical character recognition 文字识别)或人工智能模型训练,就可以破解
第三方授权登录的好处:1、安全性可能比自己做的更完善,2、用户的真实性,相对来说更有保障;3、省钱
缺点:没手机号
判断每次请求由哪一个用户发出的,不用session,1、因为每次请求都要查询数据库,数据库压力太大,2、如果把session存到cookie中容易被伪造,CSRF攻击(cross-site request forgery)
CSRF攻击原理及过程如下:
1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
跨站攻击的本质是, 攻击者拿着你的“身份凭证”,冒充你进行的相关攻击行为。
解决方法:
为了防止CSRF的发生,创建Token处理机制,根据用户信息(id等信息)加密生成加密数据返回给前端,保存到localStorage中,前端每次请求后端,都带上它,后端验证请求确实是由这个用户发来的,就通过,加密数据里包含了用户信息,不用再查数据库,Token数据结构与时间、加密签名直接相关, 这么设计的的目的如上所说,是给“身份凭证”加上时间生存周期管理和签名校验管理,如果的凭证被人拿到了, 要先判断Token中的“签名”与时间戳是否都有效,再进行正常的业务处理, 这样通过对非法数据的校验过滤,来降低CSRF攻击的成功率。