Chromium 的 XSS 审计员拒绝执行脚本

Posted

技术标签:

【中文标题】Chromium 的 XSS 审计员拒绝执行脚本【英文标题】:Chromium's XSS auditor refused to execute a script 【发布时间】:2013-06-05 16:48:24 【问题描述】:

这是来自 Chrome Inspector 的消息:

XSS Auditor 拒绝执行脚本 http://localhost/Disposable Working NOTAS.php 因为在请求中找到了它的源代码。 审核员已启用,因为服务器未发送任何内容 一个“X-XSS-Protection”或“Content-Security-Policy”标头。

...我的笔记本电脑上的 localhost 上有几十个网站,这些网站用于我的大部分工作流程,在过去的几天里,在更新的 Chrome 改变了一些东西之后,几乎所有网站的文本区域' 内容不再保存到文件中。

保存我所做的编辑的代码一律损坏;我输入新文本,单击 在 save 和我的浏览器上,而不是执行文件~在脚本中编写子例程 对于我正在使用的网页,只需打开一个新的空白页面。如果我然后击中背部 按钮,文本区域仍然显示新添加的内容,但在文件中,没有变化 正在追加。

【问题讨论】:

你在这些文本区域中保存了什么?它们被用作 html 编辑器吗?如果您在 textarea 中输入 javascript 代码,并且您的服务器返回该代码,它将触发 XSS 保护审计器。 啊,对...这是一个更好的问题标题;) 【参考方案1】:

如果您想告诉 Chrome 禁用其 XSS 保护,您可以发送一个值为 0X-XSS-Protection 标头。由于您似乎在使用 PHP,因此您可以将其添加到在输出任何内容之前始终执行的位置:

header("X-XSS-Protection: 0");

【讨论】:

放置在 中正确的 php 标签内,似乎已经完全解决了这个问题。 Opera、Safari、Firefox 都很好,只有 Chrome 让我的脚本大吃一惊,而且只有在 Google 的一个自动版本〜更新之后,它破坏了一些东西并修复了它。感谢您的帮助。 理想情况下,它应该放在打印任何 html 输出之前,而不是放在 标记内。否则它将在禁用 php 的输出缓冲或设置为较小值的服务器上失败。 @JoeCoder 啊,注意到了。欣赏这个细节。 .net(aspx 页面)怎么样 @Vishal:我对它们不是很熟悉,但从文档来看,我认为Response.Headers.Add("X-XSS-Protection", "0"); 可以解决问题,假设ResponseHttpResponse【参考方案2】:

我最近在学习 XSS 时遇到了完全相同的问题。下面的屏幕截图显示了绕过 Chrome XSS Auditor 的 PHP 方法。

只需添加 -- header("X-XSS-Protection: 0");

【讨论】:

注意:如果您收到“标头已发送”错误,请将 PHP sn-p 放在文档顶部或打开输出缓冲。【参考方案3】:

如果您被 XSS Auditor 阻止,您应该在禁用它之前检查您的代码是否存在 XSS 漏洞。

如果您被 XSS Auditor 阻止,则很有可能您有 XSS 漏洞,只是没有意识到。如果您只是禁用 XSS 审核器,您将仍然容易受到攻击:它正在治疗症状,而不是潜在的疾病(根本原因)。

【讨论】:

以上是关于Chromium 的 XSS 审计员拒绝执行脚本的主要内容,如果未能解决你的问题,请参考以下文章

代码审计学习之反射型XSS

XSS跨站脚本攻击总结

Seay源代码审计系统

当前市面上的代码审计工具哪个比较好?

中职网络空间安全2023B模块代码审计

xss攻击原理