Chrome: ERR_BLOCKED_BY_XSS_AUDITOR 详情

Chrome: ERR_BLOCKED_BY_XSS_AUDITOR details

我在尝试 post 然后得到一个简单的表格时得到这个 chrome 标志。

问题是开发者控制台对此没有任何显示,我自己找不到问题的根源。

是否有任何选项可以更详细地查看此内容? 查看触发错误的代码段以修复它...

当我在 POST 请求 的页面中将 hrefjavascript:void(0) 更新为 # 时,它起作用了。

例如:

<a href="javascript:void(0)" id="loginlink">login</a>

更改为:

<a href="#" id="loginlink">login</a>

Chrome v58 可能可能不会 解决您的问题...这实际上取决于您实际 POST 正在做什么。例如,如果您尝试 POST HTML/XML 元素中的一些原始 HTML/XML 数据,您的请求可能仍会被审核员阻止。

在过去的几天里,我在两种不同的情况下遇到了这个问题:所见即所得 客户端 编辑器和具有某种内容预览功能的交互式上传表单。我设法通过在 POST 之前对原始 HTML 进行 base64 编码来修复它们,然后在接收 PHP 页面上对其进行解码。这很可能会解决问题,最重要的是,提高开发人员对来自 POST 请求的数据的认识水平,希望促使他采用有效的数据 encoding/decoding 策略并加强他们的 Web 应用程序免受 XSS-类型攻击。

要在 客户端 对您的内容进行 base64 编码,您可以使用 native btoa() function, which is supported by most browsers nowadays, or a third-party alternative such as a jQuery plugin (I ended up using this,它工作正常)。

要对 POST 数据进行 base64 解码,您可以使用 PHP 的 base64_decode(str) 函数、ASP.NET 的 Convert.FromBase64String(str) 或其他任何函数(取决于您的服务器端场景)。

有关更多信息,请查看我写的关于该主题的 this blog post

这是一个 Chrome 错误。唯一的补救办法是使用 FireFox,直到他们修复此 Chrome 错误。 XSS 审核员将一个已经正常运行了 20 年的页面作废,这似乎是一种症状,而不是原因。

我解决了问题!

在我提交的情况下,我将 HTML 发送到操作,在模型中我有一个 属性 接受 HTML 和 "AllowHTML".

解决方案是删除此 "AllowHTML" 属性 一切正常!

显然我不再将 HTML 发送到操作,因为在我的情况下我不需要它

可能在某些情况下有帮助。修改 Apache httpd.conf 文件并添加

ResponseHeader set X-XSS-Protection 0

可能已在Version 58.0.3029.110 (64-bit)中修复。

在开发中绕过此错误的简单方法是将 header 发送到浏览器

Put the header before send data to browser.

php中你可以发送这个header来绕过这个错误,send header reference:

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

ASP.net 您可以发送此 header 和 send header reference:

HttpContext.Response.AddHeader("X-XSS-Protection","0");
or 
HttpContext.Current.Response.AddHeader("X-XSS-Protection","0"); 

nodejs发送header,send header reference:

res.writeHead(200, {'X-XSS-Protection':0 });
// or express js
res.set('X-XSS-Protection', 0);

在这种情况下,作为 Creative forums, (some kind of vBulletin 构造的第一次贡献者)并减少到 post 在访问论坛之前向版主发送 PM,很容易封装性质来自上面更受欢迎的答案的问题。 命令是

http://forums.creative.com/private.php?do=insertpm&pmid=

如上所述,实际数据为 "raw HTML/XML data within an input/select/textarea element"。

在用户端处理此类错误(或功能)的一般要求是某种快速修复调整或旋转。 This post 讨论了清除缓存、重置 Chrome 设置、创建 new_user 或使用新的测试版重试操作的选项。 还建议使用以下内容启动一个新实例:

google-chrome-stable --disable-xss-auditor

在这个W10 1703 Chrome 061 版本修改后的版本:

chrome --disable-xss-auditor

但是,重新登录站点并再次尝试 post 时,出现了同样的错误。也许语法需要改进或其他地方出错了。

然后启动 Edge 并从那里重新post 似乎是合理的,结果完全没有问题。

我注意到,如果文本中有撇号 ',Chrome 将阻止它。