XSS 和 CSRF
1. XSS
1.1 简介
XSS:跨站脚本攻击(Cross Site Scripting)
发生在目标用户的浏览器层面上的,当渲染 DOM
树的过程发生了不在预期内执行的 JS 代码时,就发生了 XSS
攻击。大多数 XSS
攻击的主要方式是嵌入一段远程或者第三方域上的 JS
代码。实际上是在目标网站的作用域下执行了这段 JS
代码。
攻击者通过注入恶意的脚本,在用户浏览网页的时候进行攻击,比如获取 cookie
,或者其他用户身份信息。可以分为存储型和反射型。存储型是攻击者输入一些数据并且存储到了数据库中,其他浏览者看到的时候进行攻击;反射型的话不存储在数据库中,往往表现为将攻击代码放在 url
地址的请求参数中
1.2 防御方式
① cookie
设置 httpOnly
属性,它会禁止 javascript 脚本来访问 cookie
② 对用户的输入进行检查,
③ 进行特殊字符过滤。
2. CSRF
2.1 简介
CSRF:跨站请求伪造(Cross Site Request Forgery)
字面理解意思就是在别的站点伪造了一个请求。可以理解为攻击者盗用了用户的身份,以用户的名义发送了恶意请求。比如用户登录了一个网站后,立刻在另一个 tab
页面访问量攻击者用来制造攻击的网站,这个网站要求访问刚刚登陆的网站,并发送了一个恶意请求,这时候 CSRF
就产生了,比如这个制造攻击的网站使用一张图片,但是这种图片的链接却是可以修改数据库的,这时候攻击者就可以以用户的名义操作这个数据库。
2.2 防御方式
① 使用验证码,
② 检查 https
头部的 refer
,
③ 使用 token