1 密码安全
1.1 泄露渠道
- 数据库被盗
- 服务器被入侵
- 通讯被窃听
- 内部人员泄露
- 其他网站(撞库)
1.2 防御
- 严禁明文存储
- 单向变换
- 变换复杂度要求
- 密码复杂度要求
- 加盐(防止拆解)
1.3 哈希算法
明文-密文 一一对应
- 彩虹表记录明文密文一一对应表,容易破解
- 两次md5加密也容易破解
- 所以密码必须复杂
- 加盐
- 加盐可以使密码更加难破解 加盐+ 字符串 + 密码
雪崩效应 - 明文: 明文小幅度变化,密文加剧变化 密文: 明文无法反推 密文固定长度: md5 sha1 sha256
1.4 密码传输安全
- https传输
- 频次限制
- 前端加密意义有限- 传输层加密不会泄露 但不代表不能登录
1.5 摘要加密的复杂度
2 人机校验与验证码
2.1滑动验证码实现原理
- 服务端随机生成抠图和带有抠图阴影的背影图,服务器随机抠图的位置坐标
- 前端实现滑动交互,将抠图拼在抠图阴影之上,获取到用户滑动距离值
- 前端将用户滑动距离值传入服务器,服务端校验误差是否在容许范围中
3 HTTP协议配置
https特点: 保密性、完成性 、 真实性 http + ssl = https
3.1 对称加密
3.2 非对称加密
- 产生一堆密钥,私钥和公钥
- 公钥负责加密
- 私钥负责解密
- 私钥无法解开说明公钥无效 - 抵抗赖
- 计算复杂对性能有影响
ssh验证过程 https验证过程: 非对称与对称加密算法 非对称与对称加密: 因为非对称不适合大量数据加密
4 中间件helmet
- 强制使用安全连接
- 提供对于‘点击劫持’的保护
- 防止浏览器响应类型
- 防止收到跨脚本攻击
|