首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浏览器如何保护用户免受XSS攻击?

问浏览器如何保护用户免受XSS攻击?
EN

Security用户
提问于 2023-01-19 14:57:59
回答 1查看 53关注 0票数 0

我正在了解浏览器针对XSS漏洞使用的不同缓解措施。

比方说,开发人员犯了一个错误,站点上存在XSS漏洞。不幸的是,黑客利用了该漏洞并能够执行JavaScript。(如果有CSP,则绕过CSP)

浏览器用来防御XSS漏洞的主要技术是什么?

  • 浏览器是否拥有反病毒,它扫描JavaScript代码并将其与恶意代码进行比较?
  • XSS-保护头在幕后做什么?
  • 还有其他针对XSS的安全层吗?
EN

回答 1

Security用户

发布于 2023-01-19 16:09:57

浏览器是否拥有反病毒,它扫描JavaScript代码并将其与恶意代码进行比较?

不是

在幕后做什么XSS-保护头?

没什么或者不多。这个特性要么没有实现,要么从大多数浏览器中被删除。这个特性从来没有一个标准的实现,所以不管它实现了什么,都是用自己的启发式方法来实现的。

在实际实现和启用时,主要是使用启发式来检测常见的反射XSS攻击。这是通过检查URL的部分是否反映在HTML中的危险位置来实现的,在那里它们可能是脚本执行的一部分。在某些情况下,这种启发式可能会被劫持,从而使XSS攻击成为可能。

有关更多信息,请参见的保护。

还有其他针对XSS的安全层吗?

最好的一层由开发人员使用内容-安全-策略(CSP)完成。可以执行CSP来禁止内联脚本,并限制可以从哪个源脚本加载脚本,甚至限制外部脚本内容本身,这在包含来自您自己控制之外的第三方的脚本时非常有用。通过这种方式,CSP消除了XSS的主要载体:攻击者不能导致自己脚本的执行,即使攻击者设法将脚本放置到页面中、尝试从某个外部站点包含脚本或设法破坏第三方脚本源。如果您确实需要在代码中使用内联脚本,则可以使用CSP将其使用限制在正常位置。

请注意,需要显式启用CSP,因为出于兼容性原因,CSP没有使用限制性安全默认值启用。不幸的是,只需在字段名中输入一个错误或忘记将其放在正确的位置,就很容易意外地禁用。如果没有CSP,浏览器不会警告您,所以最好进行一些自动化测试,确保在您对站点进行一些更改之后仍然启用它。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/267839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档