一、CSRF
- 基础概念和缩写
CSRF, 通常称为跨站请求伪造,英文名 Cross-site request forgery 缩写 CSRF - 攻击原理
关键点: 利用你本身的漏洞自动去执行接口,同时要依赖于用户要登录网站(比如微博粉丝关注)
2-1 网站A中某个接口存在漏洞
2-2 用户已经在网站A上登录过 - 防御措施
3-1 Token验证
登录时会向用本地存储一个token,访问接口时,没有带上token,不会通过验证
引诱点击时,浏览器只会自动生成cookie,没有手动上传token,从而避免受到攻击
3-2 Referer 验证
Referer 指的是页面来源,如果服务器判断,请求的页面是否属于我的站点下的页面,如果是执行接口,如果不是一律拦截
3-3 隐藏令牌
把令牌隐藏到HTTP的header头部中,不放在链接上,和token类似
二、XSS
- 基本概念和缩写
XSS 跨域脚本攻击 (cross-sit scripting) - 攻击原理
通过合法渠道,向你的页面注入脚本(js),让你的js不可执行,导致页面卡死 - 防御措施
3-1 编码
①对用户输入的数据进行 HTML Entity 编码
3-2 过滤
① 移除用户上传的DOM属性,如onerror事件
②移除用户上传的Style节点、Script节点、Iframe节点
3-3 校正
①避免 直接对HTML Entity 解码
② 使用DOM Parse转换,校正不匹配的DOM标签