【发布时间】:2020-08-14 09:43:44
【问题描述】:
目前我正在开发一个在 Angular 框架中使用 RxJS 的项目。最近的一份渗透测试报告强调,在应用程序中使用window.postMessage(‘’, ‘*’) 可能会导致安全漏洞。进一步调查后,我们发现 RxJS (http://reactivex.io/rxjs/file/es6/util/Immediate.js.html) 中的 Immediate.js 文件可能是此问题的根源。渗透测试报告指出“如果 postMessage() 用于在窗口之间传输敏感信息,那么未经授权的窗口也将能够检索此信息”。有人建议在 window.postMessage() 函数中使用显式目标窗口而不是通配符 ('*') 字符来解决此问题。由于此代码嵌入在 RxJS 库中,因此我们不愿意更改它,因为它可能会引入一些不良影响。
鉴于上述情况,我想知道:
- 可以采取哪些措施来防止客户端计算机上的其他窗口侦听此 Angular 应用程序?
- 这是 RxJS 上的一个已知问题吗?是否有可用的修复程序?
注意渗透测试是由第三方进行的,我们不知道他们可能使用了哪些工具。
【问题讨论】:
-
你使用的是 rxjs 5.x 吗?
ImmediateDefinition使用postMessage的地方似乎只在 rxjs 5 代码中,而不是在 rxjs 6 中。 -
他们是否对源代码或构建应用程序进行了渗透测试..?
-
我刚刚检查了版本,它是 5.5.2。我认为是时候更新到最新版本了。我查看了 GitHub 存储库,似乎这已在 rxjs 6 中删除。@fridoo 感谢您指出这一点!
-
@MikeOne 他们只能访问我们编译的应用程序,所以我认为他们已经过渗透测试。
-
@JonathanStellwag 我会在更新 Angular 并对其进行测试后这样做。
标签: angular security rxjs postmessage penetration-testing