此文项目代码:https://github.com/bei-yang/I-want-to-be-an-architect
码字不易,辛苦点个star,感谢!
引言
此篇文章主要涉及以下内容:
- 密码强化
- 人机识别
HTTPS
- 浏览器安全控制
-
CSP
(Content-Security-Policy
)
密码安全
- 泄漏渠道
- 数据库被偷
- 服务器被入侵
- 通讯被窃听
- 内部人员泄漏
- 其他网站(撞库)
- 防御
- 严禁明文存储
- 单向变换
- 变换复杂度要求
- 密码复杂度要求
- 加盐(防拆解)
- 哈希算法
- 明文 - 密文一一对应
- 雪崩效应 - 明文小幅变化 密文剧烈变化
- 密文 - 明文无法反推
- 密文固定长度md5 sha1 sha256
- 密码传输安全
- https传输
- 频次限制
- 前端加密意义有限 - 传输层加密不会泄露,但不代表不能登录
- 摘要加密的复杂度
- md5反查
https://www.cmd5.com/
- md5反查
讨论⼀下下列情况
- 两次MD5是否可取
- 只加盐好不好
- 中间的字符串的作⽤
- 盐泄露是否会泄露密码
- 盐和字符串泄露密码是否可以反推,但密码很复杂是否会被泄露
人机验证与验证码
样式和反面教材https://veui.net/
滑动验证码实现原理
- 服务端随机生成抠图和带有抠图阴影的背景图片,服务端保存随机抠图位置坐标;
- 前端实现滑动交互,将抠图拼在抠图阴影之上,获取到用户滑动距离值;
- 前端将用户滑动距离值传入服务端,服务端校验误差是否在容许范围内;
备注说明:单纯校验用户滑动距离是最基本的校验,处于更高安全考虑,可以考虑用户滑动整个轨迹、
网友评论