首先说了一下自己的项目,所以要对自己的项目进行深入的了解。
一、在登录界面要考虑的安全问题。
传输:使用https进行传输,对传输内容进行加密,杜绝http明文传输
密码:
- 强制用户使用有一定强度并复杂的密码,一定包含英文字母和数字,防止出现123456这样的弱口令
- 密码不要明文存储在数据库,要进行加密处理,同时可以加盐
- 用户名和密码不要单方面提示,不管是用户名还是密码错误都提示“用户名或密码错误”,防止攻击者进行尝试
sql防护:前端进行禁止用户输入导致sql注入的字符,后端也要进行sql注入的防护
异地登录:保存每次用户登录信息日志,当出现异地登录时,进行提醒
cookie防护:不要在cookie中保存账号密码,要将过期时间,ip等考虑进去,cookie要设置成http only,防止脚本获取
设置会话有效期:比如登录后10分钟不操作进登录失效。
加验证码:防止黑客进行撞库攻击
采用单点登录。
二、如何确定用户是否登录。
- 当用户输入正确的用户名和密码时,在服务器端创建一个session保存,并设置过期时间
- 如果用户选择保存密码,将cookie保存在浏览器端
- 每次用户向后台进行请求时,进行状态验证,如果存在session,则继续进行操作,并刷新session的有效时间,如果不存在session,则判断cookie是否正确,如果正确则,完成自动登录,否则返回登录界面。 <