什么是csrf攻击?如何防止它们?

为了防止您在CSRF攻击中丢失现金和凭据,开发人员和用户都可以发挥作用。...

跨站点请求伪造(CSRF)是利用网站漏洞的最古老方法之一。它针对通常需要登录等身份验证的服务器端web交换机。在CSRF攻击过程中,攻击者的目标是强迫其受害者代表他们发出未经授权的恶意web请求。

What's a CSRF attack and how can you prevent it-Featured

弱或差的网站安全实践和用户路径上的疏忽是成功的CSRF攻击的一些常见原因。

让我们看看什么是CSRF攻击,以及作为一个开发人员或用户,您可以采取哪些可能的方法来阻止它。

csrf攻击对您有何影响?

CSRF是一种攻击,用于在需要用户登录或身份验证的web操作期间实现未经授权的请求。CSRF攻击可以利用会话ID、Cookie以及其他基于服务器的漏洞窃取用户的凭据。

例如,启用反CSRF过程可防止跨域恶意交互。

一旦这个障碍被打破,攻击者就可以通过用户浏览器创建的cookies快速利用用户的会话ID,并在易受攻击的网站中嵌入脚本标记。

通过操纵ID,攻击者还可以将访问者重定向到另一个网页,或利用电子邮件等社会工程方法发送链接,鼓励受害者下载恶意软件。

一旦受害者执行了这样的操作,它就会向用户的服务页面发送一个HTTP请求,并授权该请求操作以支持攻击者。这对一个毫无戒心的用户来说是毁灭性的。

成功的CSRF攻击可使授权用户丢失其访问凭据,尤其是在基于服务器的操作(如密码或用户名更改请求)期间。在更糟糕的情况下,攻击者接管整个会话并代表用户进行操作。

CSRF被用来劫持网上基金交易以及更改用户名和密码,从而导致用户无法访问受影响的服务。

攻击者如何利用csrf劫持会话:示例

CSRF攻击的主要目标是涉及用户身份验证的web操作。为了成功,它需要受害者的无意行为。

在CSRF攻击期间,GET、DELETE和PUT操作以及易受攻击的POST请求是攻击者的主要目标。

让我们看看这些术语的含义:

  • GET:从数据库中收集结果的请求;例如,Google search。
  • POST:通常用于通过web表单提交请求。POST请求在用户注册或登录期间很常见,也就是所谓的身份验证。
  • 删除:从数据库中删除资源。每当您从特定的web服务中删除您的帐户时,都会执行此操作。
  • PUT:PUT请求修改或更新现有资源。一个例子是改变你的Facebook名字。

实际上,攻击者使用会话劫持来备份CSRF攻击。使用此组合时,攻击者可以使用劫持来更改受害者的IP地址。

然后,IP地址的更改将受害者登录到一个新网站,攻击者在该网站中**了一个欺骗链接,该链接提交了他们通过CSRF创建的复制表单或修改的服务器请求。

然后,一个不知情的用户认为重定向来自服务提供商,并单击攻击者网页上的链接。一旦他们做到了这一点,黑客提交了一个网页加载的形式,他们不知道。

get请求csrf攻击示例

想象一下,试图通过一个不安全的电子商务平台进行在线支付。平台所有者使用GET请求来处理您的事务。GET查询可能如下所示:

https://websiteurl/pay?amount=$10&company=[company ABC's account]

劫持者可以通过更改GET请求的参数轻松地窃取您的事务。要做到这一点,他们需要做的就是用你的名字换他们的名字,更糟糕的是,改变你打算支付的金额。然后将原始查询调整为如下内容:

https://websiteurl/pay?amount=$20000&company=[attacker's account]

一旦您单击指向修改后的GET请求的链接,您就会无意中转移到攻击者的帐户。

通过GET请求进行事务处理是一种不好的做法,使活动容易受到攻击。

请求后csrf攻击示例

然而,许多开发人员认为使用POST请求进行web事务更安全。虽然这是事实,但不幸的是,POST请求也容易受到CSRF攻击。

要成功劫持POST请求,攻击者只需要您当前的会话ID、一些复制的不可见表单,有时还需要一些社会工程。

例如,POST请求表单可能如下所示:

<form action="Company ABC's account" method="POST"><input type="text" name="name" placeholder="name"><br><input type="number" name="amount"><br><input type="submit" name="submit"></form>

但是,攻击者可以通过创建新页面并将上面的表单修改为以下内容来交换您的凭据:

<body onload="document.getElementById('payment-form').submit();"><form action="Attacker's account" id="payment-form" method="POST"><input type="text" hidden name="name" placeholder="name"><br><input type="number" hidden value=30000 name="amount"><br><input type="submit" hidden name="submit"></form></body>

在**纵的表单中,攻击者将amount字段的值设置为“30000”,将收件人的帐号替换为他们的帐号,在页面加载时提交表单,还对用户隐藏表单字段。

一旦他们劫持了当前会话,您的事务页面就会重定向到攻击者的页面,从而提示您单击他们知道您最有可能访问的链接。

单击此按钮将加载复制表单的提交,从而将您的资金转移到攻击者的帐户中。这意味着您不需要单击“send”之类的按钮来进行事务,因为JavaScript在加载下一个网页时会自动执行此操作。

或者,攻击者还可以起草一封嵌入HTML的电子邮件,提示您单击链接以执行相同的页面加载表单提交。

另一个易受CSRF攻击的操作是用户名或密码更改,例如PUT请求。攻击者复制您的请求表单并用他们的电子邮件地址替换您的电子邮件地址。

然后他们窃取你的会话,或者将你重定向到一个页面,或者给你发送一封电子邮件,提示你点击一个吸引人的链接。

然后提交一个**纵的表单,将密码重置链接发送到黑客的电子邮件地址,而不是你的。这样,黑客就会更改你的密码,并将你从帐户中注销。

作为开发人员如何防止csrf攻击

How to prevent yourself against a CSRF attack

防止CSRF的最佳方法之一是使用频繁更改的令牌,而不是依赖会话cookie在服务器上运行状态更改。

相关:免费指南,了解数字安全和保护您的隐私

许多现代后端框架提供了针对CSRF的安全性。因此,如果您想避免自己增强CSRF的技术性问题,您可以通过使用内置反CSRF令牌的服务器端框架轻松解决。

当您使用反CSRF令牌时,基于服务器的请求会生成随机字符串,而不是更易受静态攻击的会话cookie。这样,就可以保护会话不被劫持者猜到。

在web应用程序上实现双因素身份验证(2FA)系统来运行事务也可以降低CSRF的可能性。

可以通过跨站点脚本(XSS)启动CSRF,这涉及到向用户字段(如注释表单)注入脚本。为了防止这种情况,最好在网站的所有用户表单字段中启用HTML自动转义。该操作阻止表单字段解释HTML元素。

如何以用户身份防止csrf攻击

作为一个涉及身份验证的web服务的用户,您可以在防止攻击者通过CSRF窃取您的凭据和会话方面发挥作用。

确保在涉及资金转移的活动中使用可信的web服务。

除此之外,还应使用安全的web浏览器来保护用户不受会话暴露的影响,并使用安全的搜索引擎来防止搜索数据泄漏。

相关:最好的私人搜索引擎,尊重您的数据

作为一个用户,您还可以依赖第三方身份验证器(如googleauthenticator)或其替代品通过web验证您的身份。

尽管您可能觉得无法阻止攻击者劫持您的会话,但您仍然可以通过确保浏览器不存储密码和其他登录详细信息等信息来帮助防止这种情况。

加强你的网络安全

开发人员需要在开发和部署期间定期测试web应用的安全漏洞。

但是,在试图阻止其他漏洞的同时引入其他漏洞是很常见的。因此,在试图阻止CSRF时,要小心确保没有违反其他安全参数。

  • 发表于 2021-03-29 05:49
  • 阅读 ( 323 )
  • 分类:互联网

你可能感兴趣的文章

xss公司(xss)和csrf公司(csrf)的区别

...威胁。其中两个是XSS和CSRF。 目录 1. 概述和主要区别 2. 什么是XSS 3. 什么是CSRF 4. 并列比较——XSS与CSRF的表格形式 5. 摘要 什么是xss公司(xss)? XSS是一种向网站注入恶意代码的代码注入攻击。这是最常见的网站攻击之一。它可以...

  • 发布于 2020-10-18 08:51
  • 阅读 ( 318 )

你的sim卡被黑客攻击的两种方式(以及如何保护它)

...他们发现了一个新的安全漏洞,名为Simjacker。这种复杂的攻击目标是SIM卡。它通过使用短信息向目标设备发送一段类似间谍软件的代码来实现这一点。 ...

  • 发布于 2021-03-18 01:51
  • 阅读 ( 633 )

什么是零日攻击?攻击是如何工作的?

... 话虽如此,什么是零日攻击,为什么保持软件更新如此重要? ...

  • 发布于 2021-03-26 16:55
  • 阅读 ( 269 )

关于maze勒索软件攻击你需要知道什么

... 什么是迷宫式赎金器(the maze ransomware)? ...

  • 发布于 2021-03-26 17:37
  • 阅读 ( 230 )

什么是“零日”攻击,如何保护自己?

科技媒体不断报道新的危险的“零日”攻击。但究竟什么是零日攻击,是什么让它如此危险,最重要的是,你如何保护自己? 零日攻击发生在坏人领先于好人的时候,用我们根本不知道存在的漏洞攻击我们。当我们没有时间准...

  • 发布于 2021-04-09 03:20
  • 阅读 ( 143 )

如何用冷冻柜绕过加密

...数据。 这就是加密通常被认为是如何工作的,这也是为什么聪明的公司加密笔记本电脑和智能**上的敏感数据。 ram中的数据剩磁 正如我们上面提到的,在计算机断电后,数据很快从RAM中消失,RAM断电。攻击者可以尝试快速重新...

  • 发布于 2021-04-09 03:31
  • 阅读 ( 192 )

如何使internet explorer更安全(如果您一直在使用它)

...全并启用“启用增强的保护模式”选项。 相关报道:为什么64位版本的Windows更安全 在这里,还可以启用“为增强的保护模式启用64位进程”选项。这使得Internet Explorer作为64位进程运行,因此它可以使用64位版本的Windows上提供的...

  • 发布于 2021-04-09 08:24
  • 阅读 ( 199 )

如何检查路由器的恶意软件

...们容易受到攻击。 你的路由器如何加入黑暗面 相关:什么是DNS,我应该使用另一个DNS服务器吗? 攻击者通常试图更改路由器上的DNS服务器设置,将其指向恶意DNS服务器。当你尝试连接到一个网站-例如,你的银行网站-恶意DNS...

  • 发布于 2021-04-10 06:56
  • 阅读 ( 178 )

android的stagefright漏洞:你需要知道什么以及如何保护自己

...程序中嵌入的MP4视频也可能危及你的**或平板电脑。 为什么舞台灯光的缺陷是危险的-不仅仅是彩信 一些评论员称这种攻击为“Stagefright”,但实际上是对Android中一个名为Stagefright的组件的攻击。这是Android中的一个多媒体播放...

  • 发布于 2021-04-10 07:43
  • 阅读 ( 273 )

沙盒解释:他们如何已经保护你,以及如何沙盒任何程序

...运行程序的严格控制的环境。沙盒限制了一段代码可以做什么,只给它所需的权限,而不添加可能被滥用的额外权限。 例如,您的web浏览器基本上运行您在沙盒中访问的网页。它们仅限于在浏览器中运行和访问有限的资源集—...

  • 发布于 2021-04-11 17:34
  • 阅读 ( 161 )
godefa
godefa

0 篇文章

相关推荐