XSS & CSRF
xss:跨站脚本攻击:注入一些非法的脚本
csrf:冒充身份
XSS
- 反射型
/welcome:res.send(req.query.type) 输入什么就输出什么(httpOnly:false,但不是解决方案)
比如:?<script>alert(document.cookie)</script>
反射型:一定要用户先触发什么操作
原因:没有对内容进行过滤,直接返回到页面上。
对内容进行过滤
一般是服务器写得不安全
- dom-base型
不基于后端,dom-based:修改了某个标签的属性或者往div里塞了东西
- 存储型
持久性:恶意脚本已存储进数据库
核心解决方法:转义和过滤,过滤需要过滤的东西
CSRF
转账:访问了一些恶意页面,钱丢了
转账接口
跨站请求伪造
原理如下:
demo如下:cookie @todo
同源指的都是ajax,form img script link 都是不受跨域限制的。
防御措施:
添加验证码:每次校验验证码对不对
转账页面每次都会生成一个新的验证码,然后和你请求过来的进行比对。
前提:钓鱼网站是拿不到验证码的。钓鱼网站是拿不到正常网站(3000端口)的cookie,也就没法请求验证码。只能是伪造发请求。
判断请求的来源
req.headers.referer 。但是这个可伪造
token
服务器xxx模块-加密-生成token,然后每次请求携带上token,比对一下。用户是无知觉的。
不用输验证码,不用判断来源referer