Web开发的安全之旅 | 青训营笔记

94 阅读2分钟

Web开发的安全之旅 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的的第5天

两个角度攻击和防御

攻击

  • 投放恶意脚本xss

  • xss的特点

    • 通常难以从ui上感知
    • 窃取用户信息
    • 绘制ui,引诱用户点击
  • Stored XSS

    • 恶意脚步存放在数据库中
    • 访问也买你->读数据 被攻击
    • 危害最大,全部用户都可见
  • Reflected 反射攻击

    • 不涉及数据库

    • 从URL上攻击

  • DOM-based XSS

    • 不需要服务器的参与
    • 恶意攻击发起 执行都在浏览器上完成
  • CSRF

    • 用户不正确的前提下
    • 利用用户权限
    • 构造指定HTTP请求,窃取或修改用户敏感信息
  • injection注入攻击

    • 通过注入sql参数,盗取数据
  • Dos攻击

    • 通过某种方式,导致服务器资源被消耗,来不及响应更多的请求,导致请求挤压,造成雪崩效应
  • DDOS

    • 短时间,让大量僵尸设备请求流量,让服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新的请求
    • 直接访问ip,任意API
  • 中间人攻击

    • 明文传输
    • 信息篡改
    • 对方身份未验证

防御

  • xss

image.png

  • 前端:主流框架默认防御,googel-closure-library

  • 服务端:DOMPurify

  • string->Dom,上传svg,尽量不要做自定义跳转链接,自定义样式,这些方式我们需要防范

  • 插播:Same-origin Policy

    • 两个url协议,域名,端口要确保都相同,就是同源
  • csp

image.png

image.png

  • CSRF的防御
    • 防御异常来源,同源请求中,GET+HEAD不发送
    • 如果是合法的页面,服务器接受过此请求,可以对此页面请求进行标记

image.png

  • CSRF--iframe
    • 绕过源限制
    • 将iframe藏在button下面,点击button会造成攻击

image.png

  • 将更新和获取放在同一个接口,可能会导致两个接口同时被攻击

  • 避免用户信息被携带

  • SameSite Cookie

    • domain:可以访问该Cookie的域名
    • 携带第一方的cookie,拒绝第三方的Cookie
    • 限制的是:Cookie domain,页面域名
    • 如果依赖于第三方服务,则使用这个属性

image.png

  • CORS 和 SameSite的区别 image.png

image.png

Regex Dos

image.png

image.png

传输层的防御方式

  • http的特性

image.png

  • https的简单流程
    • 通过使用hash计算来确认信息的安全性
  • 数字签名
    • 私钥:自己可见 公钥:公开可见

image.png

  • SRI保证我们的内容不被篡改

总结

一定要注意安全问题,一定要不断学习新的防御知识,加强防范。