📜  如何降低遭受 CSRF、XSRF 或 XSS 攻击的风险?

📅  最后修改于: 2022-05-13 01:57:02.291000             🧑  作者: Mango

如何降低遭受 CSRF、XSRF 或 XSS 攻击的风险?

跨站点请求伪造 (CSRF) 是一种 Web 应用程序安全漏洞,攻击者在该漏洞中诱骗最终用户执行用户登录时不需要的操作。CSRF 还有其他名称,例如 XSRF、sea surf、会话骑行、跨站点引用伪造和恶意链接。在社会工程学的帮助下,攻击者可以诱骗 Web 应用程序的受害者执行攻击者选择的恶意操作。

如果受害者是普通用户,那么成功的 csrf 攻击可以执行用户自己的状态更改请求,如转账、更改电子邮件、更改手机号码等。如果受害者是该 Web 应用程序的管理员,那么整个 Web 应用程序可能会受到威胁。

CSRF、XSRF、XSS 攻击

跨站点脚本也称为 XSS。它是大多数 Bug Hunter 非常受欢迎、危险和有利的漏洞。 XSS 是一个 Web 安全漏洞,允许攻击者完全破坏易受攻击的 Web 应用程序。如果受害者在易受攻击的站点中拥有高权限,则攻击者可以完全控制该站点。

XSS 漏洞的主要目的是窃取受害者的凭据。 XSS 漏洞主要是一种 javascript 技术。这个漏洞的发生是因为开发者没有注意用户输入过滤器。

XSS 的类型:

  • 反射型 XSS:每当攻击者执行恶意脚本时,就会立即从 Web 应用程序中获取响应。这是一种非持久性。 Reflected XSS 的严重程度为 P3,CVSS 评分为 5.8,属于中等。
  • 存储型 XSS:当恶意脚本存储在网站的数据库中时,会成功发生存储型 XSS。每次脚本启动时,只要加载网页,它就可以工作。所以,这是一个持久的 XSS。这比反射 XSS 风险更大。 Stored XSS 的严重性为 P2,CVSS 评分为 7-8.9,属于高。
  • DOM XSS:此漏洞存在于客户端代码而不是服务器端代码中。在 DOM XSS 中,恶意用户输入进入源内部并从接收器中出来。 DOM XSS 的严重性为 P1,CVSS 得分为 10,这是严重的。

一个简单的 XSS 有效载荷如下所示:


CSRF和XSS的预防:

反 CSRF 令牌:

  • 使用与特定用户相关联的令牌,并且可以在 Web 应用程序中存在的每个状态更改表单中作为隐藏值找到。该令牌称为 CSRF 令牌。
  • CSRF 令牌应该是:
    • 高熵不可预测。
    • 绑定到用户的会话。
    • 在执行相关操作之前,在每种情况下都经过严格验证。

相同的站点 cookie:

  • 当受害者点击attacker.com 并且请求发送到bank.com 时发生CSRF,包括受害者session_id。当请求来自第三方站点(例如 xyz.com)并且请求转到 abc.com 时,这就是跨站点通信。
  • 所以,如果我们不提供 session_id 会发生什么,那么他们就没有任何机会授权并且 csrf 阻止了。那东西提供了相同的站点cookie功能。
  • 相同站点 cookie 是仅当请求来自或源自同一站点时才会发送的 cookie。如果请求来自第三方站点,则不会附加 cookie。
  • 有三种方法可以设置相同的站点属性 None、Lax 和 Strict。
  • 默认情况下无,顶级导航栏或获取请求的 Lax 和 Strict 禁用发送到第三方站点的 cookie。
Set-Cookie: SessionId=NJCVnjnfCUrAfjoKkojDOOknKOkncKfmKDm; 
SameSite=Strict; 
Set-Cookie: SessionId=NJCVnjnfCUrAfjoKkojDOOknKOkncKfmKDm; 
SameSite=Lax;

XSS 预防技术:

  • 到达时过滤输入
  • 在输出上编码数据
  • 使用适当的响应标头
  • 内容安全策略
  • 实施 WAF

降低暴露风险:

  • 当您不认识发件人时,切勿打开带有附件的邮件。
  • 当附件看起来不可信或您没有要求时,切勿打开附件。
  • 始终使用必须包含与金钱交易相关的敏感数据的网站登出。
  • 始终与您的浏览器保持同步。切勿使用旧版本的浏览器,因为它可能与在新版本上修补的漏洞相关联。
  • 不要让您的浏览器将您的凭据和个人信息保存到自动填写表格中。
  • 定期清除您的浏览器数据和 cookie。
  • 使用浏览器扩展,例如没有脚本(对于 firefox 和 chrome),它会阻止不在受信任列表中的站点执行 javascript。