Web 安全 | 青训营笔记

71 阅读2分钟

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

xss (cross-site scripting)恶意脚本攻击

原理

  1. 盲目信任用户提交的内容
  2. 直接将用户提交的信息转化成dom节点

特点

  1. 难以从界面上直接感知到(暗中执行脚本)
  2. 窃取用户信息 (通过cookie和token)
  3. 由于可执行js绘制UI,诱使用户点击/填写信息

一、存储型的xss攻击:

  • 恶意脚本存在于数据库中,通过访问页面,读用户数据进行攻击,其危害最大,全部用户信息可见

二、反射型xss攻击(发起服务器端,执行在浏览器)

  • 通过url进行攻击,当用户访问页面时就会受到攻击

三、Dom型xss攻击(浏览器)

  • 攻击的发起和执行都在浏览器完成

image.png

四、mutation型xss攻击(针对不同浏览器,最难察觉)

五、Cross-Site request forgery(CSRF)

  • 在用户不知情前提下,利用用户权限(例如cookie),构造指定http请求窃取信息
  • 场景:用户接到email,用户点击链接触发了恶意请求,这个恶意接口去访问银行的取款接口,从而达到取款的操作

注入

SQL注入

  1. 读取请求字段
  2. 以字符串拼接方式,变成带有攻击性的SQL语句

ReDos正则表达式的服务拒绝

  • 当正则表达式是没有问号的,即贪婪模式(匹配所有,类似严格匹配),就会导致回溯,多次匹配失败,响应时间变慢,吞吐量变小

DDos

  • 通过请求堆积,导致服务器不能完成全部请求,同时由于堆积无法响应新情求(访问IP,任意API,消耗带宽,消耗尽为止)

传输层

中间人攻击

  • 导致原因,明文传送信息,未对身份做校验,信息篡改无知觉

防御篇

xss

  • google-closure-library框架
  • 用户动态生成DOM:
  1. String转DOM,进行转译
  2. svg扫描
  3. 不要让用户自定义跳转、自定义样式(要过滤)

csp (定义安全源,只执行这些)

image.png

image.png

image.png

samesite cookie

  • 只带本网站cookie不带第三方cookie
  • 设置Set-Cookie:SameSite = none;Secure,表示信任第三方,允许带cookie

image.png

课后阅读

  • 进阶篇

    • Hypertext Transfer Protocol version 2 - RFC9113
    • HPACK - Header Compression for HTTP/2 - RFC7541