我已在我的应用程序上实施了内容安全策略,它现在只在报告模式下进行测试。在适当调整政策之后,我留下了很多类似的报告:
{
"csp-report": {
"blocked-uri": "self",
"document-uri": "https://example.com/path/to/app/page.php",
"original-policy": "script-src 'nonce-DrZQpFyD2k9sGWT5' https://example.com https://ajax.googleapis.com https://maps.googleapis.com; default-src https://example.com; style-src https://example.com 'unsafe-inline' https://maxcdn.bootstrapcdn.com; img-src * data:; font-src https://example.com https://maxcdn.bootstrapcdn.com; frame-src https://example.com; frame-ancestors https://example.com; form-action *; report-uri https://<>.report-uri.io/r/default/csp/reportOnly",
"script-sample": "onmouseout attribute on DIV element",
"source-file": "https://example.com/path/to/app/page.php?id=143",
"violated-directive": "script-src 'nonce-DrZQpFyD/k9sGWT5' https://example.com https://ajax.googleapis.com https://maps.googleapis.com https://code.jquery.com/ "
}
}
该应用程序的大多数用户都使用Chrome,但这些报告仅来自Firefox。有时脚本示例会显示onmouseover
或其他一些鼠标事件。我查看了应用程序中的所有代码,并且没有任何地方使用属性鼠标事件。
关于导致这种情况的任何想法?
答案 0 :(得分:1)
很难说肯定。但是,有一种可能性是,您的某些用户安装了浏览器插件,这些插件会在页面中插入HTML,其中包含内联事件处理程序(在本例中为onmouseout
)。
检测到这一点很困难。没有办法枚举用户安装的插件;我唯一知道的选择是:
找出哪些用户正在触发此错误并直接与他们联系 - 这只有在您与用户关系密切时才可行。
开始安装流行的Firefox插件!最终你可能会找到一个负责任的人。 (但你可能不会。它可能是私人插件或Greasemonkey脚本。)