前端安全——防御手段

此文项目代码:https://github.com/bei-yang/I-want-to-be-an-architect
码字不易,辛苦点个star,感谢!

引言


此篇文章主要涉及以下内容:

  1. 密码强化
  2. 人机识别
  3. HTTPS
  4. 浏览器安全控制
  5. CSPContent-Security-Policy

密码安全


  • 泄漏渠道
    • 数据库被偷
    • 服务器被入侵
    • 通讯被窃听
    • 内部人员泄漏
    • 其他网站(撞库)
  • 防御
    • 严禁明文存储
    • 单向变换
    • 变换复杂度要求
    • 密码复杂度要求
    • 加盐(防拆解)
  • 哈希算法
    • 明文 - 密文一一对应
    • 雪崩效应 - 明文小幅变化 密文剧烈变化
    • 密文 - 明文无法反推
    • 密文固定长度md5 sha1 sha256
  • 密码传输安全
    • https传输
    • 频次限制
    • 前端加密意义有限 - 传输层加密不会泄露,但不代表不能登录
  • 摘要加密的复杂度
    • md5反查
      https://www.cmd5.com/

讨论⼀下下列情况

  • 两次MD5是否可取
  • 只加盐好不好
  • 中间的字符串的作⽤
  • 盐泄露是否会泄露密码
  • 盐和字符串泄露密码是否可以反推,但密码很复杂是否会被泄露

人机验证与验证码


样式和反面教材https://veui.net/

https://www.lisa33xiaoq.net/1232.html

滑动验证码实现原理

  1. 服务端随机生成抠图和带有抠图阴影的背景图片,服务端保存随机抠图位置坐标;
  2. 前端实现滑动交互,将抠图拼在抠图阴影之上,获取到用户滑动距离值;
  3. 前端将用户滑动距离值传入服务端,服务端校验误差是否在容许范围内;
    备注说明:单纯校验用户滑动距离是最基本的校验,处于更高安全考虑,可以考虑用户滑动整个轨迹、

你可能感兴趣的:(前端安全——防御手段)