Chrome: ERR_BLOCKED_BY_XSS_AUDITOR 详情
Chrome: ERR_BLOCKED_BY_XSS_AUDITOR details
我在尝试 post 然后得到一个简单的表格时得到这个 chrome 标志。
问题是开发者控制台对此没有任何显示,我自己找不到问题的根源。
是否有任何选项可以更详细地查看此内容?
查看触发错误的代码段以修复它...
当我在 POST 请求 的页面中将 href
从 javascript: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 将阻止它。
我在尝试 post 然后得到一个简单的表格时得到这个 chrome 标志。
问题是开发者控制台对此没有任何显示,我自己找不到问题的根源。
是否有任何选项可以更详细地查看此内容? 查看触发错误的代码段以修复它...
当我在 POST 请求 的页面中将 href
从 javascript: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 将阻止它。