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 保护,您可以发送一个值为 0
的 X-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");
可以解决问题,假设Response
是HttpResponse
。【参考方案2】:
我最近在学习 XSS 时遇到了完全相同的问题。下面的屏幕截图显示了绕过 Chrome XSS Auditor 的 PHP 方法。
只需添加 -- header("X-XSS-Protection: 0");
【讨论】:
注意:如果您收到“标头已发送”错误,请将 PHP sn-p 放在文档顶部或打开输出缓冲。【参考方案3】:如果您被 XSS Auditor 阻止,您应该在禁用它之前检查您的代码是否存在 XSS 漏洞。
如果您被 XSS Auditor 阻止,则很有可能您有 XSS 漏洞,只是没有意识到。如果您只是禁用 XSS 审核器,您将仍然容易受到攻击:它正在治疗症状,而不是潜在的疾病(根本原因)。
【讨论】:
以上是关于Chromium 的 XSS 审计员拒绝执行脚本的主要内容,如果未能解决你的问题,请参考以下文章