使用是否安全' *'作为iframe内部消息的来源?

时间:2015-12-21 18:09:13

标签: javascript security iframe cross-domain

问题是,我有<iframe>动态更改内容。我无法找到任何其他方式动态更改<iframe>元素的高度,而不是每次通过parent.postMessage更改为博客网站时发送新高度。解决方案有效(也许它可以帮助其他人,但问题是我不确定我是否以安全的方式完成了它。

我只是想问一下以这种方式使用window.parent.postMessage('Some message', '*')是否安全?

嵌入式网站:

<script type="text/javascript">
    var framesHeight = 0;
    setInterval(function(){
        var newFramesHeight = window.document.getElementsByTagName('html')[0].offsetHeight;
        if (newFramesHeight !== framesHeight) {
            window.parent.postMessage(newFramesHeight, '*');
            framesHeight = newFramesHeight;
        }
    }, 500);
</script>

如您所见,每当高度发生变化时,我都会发送一条新消息。

在博主网站上我想嵌入这个:

<script>
    window.addEventListener('message', function (evt) {
        if (evt.origin === 'http://mypage.com' && !isNaN(evt.data)) {
            document.getElementById('embedID').style.height = evt.data+'px';
        } 
   }, false);
</script>
<iframe id="embedID" src="http://mypage.com/embed/11" frameborder="0" style="width: 100%; height: 100%;" scrolling="no"></iframe>

0 个答案:

没有答案