CSRF
基本概念和缩写
CSRF,通常称为跨站请求伪造,英文名Cross-site request forgery 缩写 CSRF
攻击原理
防御措施
- Token验证(因为token不会自行随接口传递)
- Referer验证(验证是否是从本站页面来的访问)
- 隐藏令牌
- cookie设置httpOnly
XSS
XSS(cross-site scripting 跨域脚本攻击)
攻击原理:攻击方式 在页面注入脚本并运行
攻击类型:
1、反射型:XSS 代码 -> URL -> 服务器 ->客户端
反射型 两点条件: 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端 服务器端解析后响应,XSS代码随响应内容一起传回浏览器,最后浏览器解析执行XSS代码
触发方式:
- 自动触发:通过img标签如:
http://localhost:3000/?xss=<img src="null" onerror="alert(1)"/> - 引诱触发:
http://localhost:3000/?xss=<p onclick="alert(点我)">点我</p> - iframe方式:
http://localhost:3000/?xss=<iframe src="//baidu.com/t.html"></iframe>常用来插入广告之类的
2、存储型:XSS 代码 -> URL -> 服务器 ->数据库 -> 客户端
存储型 和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统),下次请求目标页时不用再提交XSS代码
xss的防御措施
第一步:编码 对用户输入的数据进行HTML Entity编码
第二步:过滤 移除用户上传的DOM属性,如onerror等 移除Style结点、Script节点、Iframe节点等
第三步: 校正 避免直接对HTML Entity 解码 使用DOM Parse 转化,校正不配对的DOM标签