Skip to content
Go back

CSRF

Edit page

CSRF

跨站请求伪造 Cross-site request forgery ,也被称为 one-click attack 或者 session riding 通常缩写为 CSRF 或者 XSRF。

攻击原理

picture 1

从上述攻击原理图可以看出, CSRF 攻击的原因在于网站 A (受攻击网站)单凭 Cookie 无法得知用户的浏览器是否可信任。

防御策略

  1. 验证 HTTP Referer 字段;
  2. 在受限请求地址中添加 token 并验证;
  3. 在 HTTP 头中自定义属性并验证;

HTTP Referer 字段

在 HTTP 协议中,有一个请求头字段叫 Referer 这个字段记录了该 HTTP 请求的来源地址(比如在 www.google.com 中点击超链接到 www.baidu.com ,那么发送到 baidu 服务器的请求中 Referer 中就是 www.google.com ),服务器可以校验该字段是否为自己域名下的,来判断该请求的来源是否合法;

token 验证

由于 CSRF 发生原理是由于攻击者可以在用户的浏览器端伪造请求欺骗受害网站,所以我们可以验证浏览器的请求中是否有 token 来判断请求是否伪造的。这个 token 不能放在 Cookie 中,需要在用户登录的是否随机生成,放在服务器的 session 中,并在每次请求中以参数的形式返回给用户,并隐藏起来。

请求头验证

该方法也是使用 token 防止黑客篡改,只不过 token 不是在参数中传输,而是在请求头中传输;


Edit page
Share this post on:

Previous Post
git ssh 协议出现 22 端口拒绝连接
Next Post
How Do I Develop My Portfolio Website & Blog