浏览器基础原理-安全: CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造

概念: 是指黑客引诱用户打开黑客的网站,在黑客的网站中,利用用户的登录状态发起的跨站请求。简单来讲,CSRF 攻击指黑客利用了用户的登录状态,并通过第三方的站点来做一些坏事

攻击方式:

1-自动发起 Get 请求

比如将转账请求隐藏在 img 标签内, 欺骗浏览器这是一张图片, 等加载时, 再发起转账请求

2-自动发起 POST 请求

网页内构建隐藏表单, 里面含有转账接口. 通过诱导用户登陆的方式, 来让表单自动提交, 从而执行转账操作.

3-引诱用户点击链接

通过诱导用户点击含有转账接口的链接, 来实现用户资金的转移.

综上, CSRF攻击不需要将恶意代码注入用户的页面, 而是利用服务器的漏洞和用户的登录状态来实现出乎意料的攻击.

如何防止 CSRF 攻击:

发起 CSRF 攻击的三个必要条件:

1-目标网站要有 CSRF 漏洞

2-用户要登录过目标站点, 并且在浏览器上保持有该站点的登录状态

3-需要用户打开一个第三方站点, 可以是黑客的站点, 也可以是一些论坛

满足以上三个条件, 黑客就可以进行 CSRF 攻击了.

如何让服务器避免遭受到 CSRF 攻击, 通常有以下几种途径:

1-充分利用好 Cookie 的 SameSite 属性

设定 Cookie 中的 SameSite 属性来实现对某些关键 Cookie 数据的传送

2-验证请求的来源站点

通过设定HTTP请求头中的Referer和Origin属性来判断是否禁止第三方站点的请求

3-CSRF Token

在向服务器发起请求时, 服务器生成一个 CSRF Token. 若用户端要发起转账请求, 则需要带上这个Token, 同时 服务器 会检验该 Token 是否合法, 若是第三方发起的请求, 没有或者非法都会导致拒绝.

参考: 极客时间-浏览器工作原理与实践

猜你喜欢

转载自blog.csdn.net/CaptainDrake/article/details/131425588