作者:丁仪
来源:https://chengxuzhixin.com/blog/post/deng_lu_liu_cheng_zen_me_zuo_cai_an_quan.html
用户登录是系统中最重要的功能之一,登录成功就能拥有系统的相关使用权限。所以设计一个安全的登录流程是十分必要的。保护用户账号不被黑客窃取,既是在保护用户的基本利益,更是在保护网站的信誉和业务发展。
流程安全性
安全的登录流程必须使用 HTTPS 协议。HTTPS 协议具有较高的安全性,可以保证数据传输过程的安全。虽然有 fiddler 等代理方式可以截取数据,但一般情况下没有用户的配合也无法截取。HTTPS 证书可以在阿里云申请,个人站点可以直接用免费版,非常方便。nginx 和 Spring Boot 的配置也非常简单。
登录一定要有人机验证机制,可以防止黑客以暴力破解的方式尝试登录。通常可以用图片验证码,并且图片要加干扰线,使用不同的字体、大小写提高识别难度。目前有打码平台和 AI 方式可以识别图片验证码,但是成本比较高。一些大型网站已经在使用新的验证方式,比如拖动鼠标移动滑块或者把一个倾斜的图片扶正,攻击的难度还是比较高的。
一定要注意防范 XSS、CSRF 攻击。攻击者通过在目标网站上注入恶意脚本,可以在其他用户的浏览器上运行脚本。利用这些恶意脚本,攻击者可获取用户的敏感信息。用户提交的任何数据都要保持怀疑态度,不能完全信任,该过滤就过滤,该拦截就拦截。国内大型网