使用window.parent.postMessage()发送非敏感数据时是否必须指定targetOrigin?

问题描述 投票:0回答:1

我正在使用

window.parent.postMessage(message, '*')

向外部网站发送私有/敏感的数据(消息是 iframe 应该的高度,即重要的是,它不是用户信息或类似的敏感信息)。

我目前对风险的理解

使用

'*'
表示
targetOrigin
意味着 任何 站点都可以拦截该
message

由于(就我而言)

message
不敏感,因此这不会直接带来任何安全风险,尽管不是最佳实践。

我必须非常小心,不要忘记这一点,并在将来通过消息发送敏感数据。只要我小心不要这样做,这种方法在技术上就是完全安全的(尽管不是最佳实践)。

我的理解正确吗?

javascript security iframe postmessage
1个回答
0
投票

我对此完全陌生,但看来上述问题中概述的理解确实是正确的;至少根据this精彩的问答,关键是:

这本身并不是风险。这只是意味着任何人都可以将您的内容嵌入框架中并阅读您通过 API 发送的消息

基本上,

*
作为targetOrigin意味着任何网站都可以看到您发送的数据(
message
),所以只要它不是敏感/私人/机密的内容就可以了。

这不是最佳实践的原因是,您或其他开发人员将来可能会发送敏感信息,并且可能没有意识到

targetOrigin
对任何人开放,因此可能会泄露机密数据。因此,为什么将
targetOrigin
仅锁定到您打算允许访问正在发送的数据的站点在技术上不是必需的,但却是最佳实践。

© www.soinside.com 2019 - 2024. All rights reserved.