CSRF 攻击是什么

什么是 CSRF 攻击?

跨站点请求伪造 (CSRF) 攻击允许攻击者伪造请求并将其作为登录用户提交到 Web 应用程序,CSRF 利用 HTML 元素通过请求发送环境凭据(如 cookie)这一事实,甚至是跨域的。 csrf-cross-site-request-forgery 与 XSS 一样,要发起 CSRF 攻击,攻击者必须说服受害者单击或导航到链接。与 XSS 不同的是,CSRF 只允许攻击者向受害者的来源发出请求,并且不会让攻击者在该来源内执行代码。这并不意味着 CSRF 攻击的防御变得不那么重要。正如我们将在示例中看到的,CSRF 可能与 XSS 一样危险。

CSRF 的背景

Web 起源于查看静态文档的平台,很早就添加了交互性,在 POSTHTTP 中添加了动词,

在 HTML 中添加了元素。以 cookie 的形式添加了对存储状态的支持。 CSRF 攻击利用 Web 的以下属性:cookie 用于存储凭据,HTML 元素(与 JavaScript 不同)被允许发出跨域请求,HTML 元素随所有请求发送所有 cookie(以及凭据)。 CSRF 将所有这些放在一起。攻击者创建了一个恶意网站,其中包含向受害者的来源提交请求的 HTML 元素。当受害者导航到攻击者的站点时,浏览器会将受害者来源的所有 cookie 附加到请求中,这使得攻击者生成的请求看起来像是由受害者提交的。

它是如何工作的?

  • 它仅在潜在受害者经过身份验证时才有效。
  • 攻击者可以通过使用 CSRF 攻击绕过身份验证过程进入网站。
  • CSRF 攻击在具有额外权限的受害者执行某些操作而其他人无法访问或执行这些操作的情况下使用。例如,网上银行。

CSRF 攻击分两个主要部分执行

第一步是吸引用户/受害者点击链接或加载恶意页面。攻击者使用社会工程学来欺骗受害者。 第二步是通过向受害者的浏览器发送伪造的请求来欺骗受害者。此链接会将看似合法的请求重定向到网站。攻击者将拥有他必须寻找的受害者的价值观或详细信息;受害者会认为该请求是合法的。攻击者还将获得与受害者浏览器相关联的 cookie 的详细信息。

CSRF 的关键概念

  • 攻击者向用户访问的站点发送恶意请求,攻击者认为受害者已针对该特定站点进行了验证。
  • 受害者的浏览器针对目标站点进行身份验证,并用于路由目标站点的恶意请求。
  • 在这里,受害者的浏览器或实施了 CSRF 预防方法的站点不会受到攻击;受影响的网站是主要漏洞。

如何防止跨站请求伪造(CSRF)?

有几种 CSRF 预防方法;其中一些是:

  • 在不使用 Web 应用程序时注销它们。
  • 保护您的用户名和密码。
  • 不要让浏览器记住密码。
  • 在您处理应用程序并登录时,请避免浏览。

结论

Cookie 很容易受到攻击,因为它们是随请求自动发送的,允许攻击者实施 CSRF 并发送恶意请求,CSRF 漏洞的影响还取决于受害者的权限,其 Cookie 与攻击者的请求一起发送。 虽然数据检索不是 CSRF 攻击的主要范围,但状态变化肯定会对被利用的 Web 应用程序产生不利影响。因此,建议防止您的网站使用预防方法来保护您的网站免受 CSRF 的影响。