我正在了解浏览器针对XSS漏洞使用的不同缓解措施。
比方说,开发人员犯了一个错误,站点上存在XSS漏洞。不幸的是,黑客利用了该漏洞并能够执行JavaScript。(如果有CSP,则绕过CSP)
浏览器用来防御XSS漏洞的主要技术是什么?
发布于 2023-01-19 16:09:57
浏览器是否拥有反病毒,它扫描JavaScript代码并将其与恶意代码进行比较?
不是
在幕后做什么XSS-保护头?
没什么或者不多。这个特性要么没有实现,要么从大多数浏览器中被删除。这个特性从来没有一个标准的实现,所以不管它实现了什么,都是用自己的启发式方法来实现的。
在实际实现和启用时,主要是使用启发式来检测常见的反射XSS攻击。这是通过检查URL的部分是否反映在HTML中的危险位置来实现的,在那里它们可能是脚本执行的一部分。在某些情况下,这种启发式可能会被劫持,从而使XSS攻击成为可能。
有关更多信息,请参见的保护。
还有其他针对XSS的安全层吗?
最好的一层由开发人员使用内容-安全-策略(CSP)完成。可以执行CSP来禁止内联脚本,并限制可以从哪个源脚本加载脚本,甚至限制外部脚本内容本身,这在包含来自您自己控制之外的第三方的脚本时非常有用。通过这种方式,CSP消除了XSS的主要载体:攻击者不能导致自己脚本的执行,即使攻击者设法将脚本放置到页面中、尝试从某个外部站点包含脚本或设法破坏第三方脚本源。如果您确实需要在代码中使用内联脚本,则可以使用CSP将其使用限制在正常位置。
请注意,需要显式启用CSP,因为出于兼容性原因,CSP没有使用限制性安全默认值启用。不幸的是,只需在字段名中输入一个错误或忘记将其放在正确的位置,就很容易意外地禁用。如果没有CSP,浏览器不会警告您,所以最好进行一些自动化测试,确保在您对站点进行一些更改之后仍然启用它。
https://security.stackexchange.com/questions/267839
复制相似问题