SonarJs 仍然显示有关 postMessage 跨域问题的警告

Ian*_*ong 2 eslint sonarqube sonarjs

错误信息是"make sure this cross-domain message is being sent to the intended domain"

此检查规则来自RSPEC-2819

在包含任何机密信息的消息中,作者不应在 targetOrigin 参数中使用通配符关键字 (*),否则无法保证消息仅传递给预期的收件人。

我认为它要求*不能用作targetOrigin,但是当我使用预期域时它仍然显示警告,targetOrigin如下所示:

在此处输入图片说明

请有人告诉我如何通过这个检查,

任何帮助,将不胜感激

Pes*_*ska 5

此规则仅检测是否postMessage在包含名称的对象上调用方法window。源代码:PostMessageCheck.java。要绕过它,只需将您的contentWindow对象分配给不同的对象,如下所示:

var content = this.elem.contentWindow;

content.postMessage('your message', window.location.origin);
Run Code Online (Sandbox Code Playgroud)