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