1

我有一些在 Chrome、Safari、IE 和 Opera 上运行良好的代码。但是由于某种原因,仅在 FireFox 18 上我遇到了这个问题

错误:访问属性“文档”的权限被拒绝 [中断此错误]

window.opener.document.getElementById("creditsTotal").innerText = credits;

这是有问题的代码(请记住,只有 ff18 会引发此 XSS 错误)

chat_client.rtmp.update_chat_status = function(){
            //console.log("The overridden method has been called.");
            if (!this.chat.current_chat_user)
                return;

            this.log("Updating chat session.");
            $.ajax({
                url: "{% url parthenon_chat.rtmp.views.update_chat_session %}",
                type: 'POST',
                data: {
                    'session_id': this.chat.session_ids[this.chat.current_chat_user],
                    'csrfmiddlewaretoken': CSRF_TOKEN
                },
                success: function(credits) { 


                    //make sure that credits var is integer and non-negative
                    var intRegex = /^\d+$/;
                    if(intRegex.test(credits)) {
                        console.log("Credits remaining: " + credits);
                       window.opener.document.getElementById("creditsTotal").innerText = credits;
                    }

                }
            });

有什么想法吗?我没有尝试使用旧版本的 ff18 来查看是否会得到相同的 XSS 异常。

4

2 回答 2

1

您知道这在 Internet Explorer 中不起作用,它仅在 caniuse.com 上具有部分功能

看到这个:http ://caniuse.com/#feat=x-doc-messaging

你必须有一个后备,即

于 2013-02-18T17:22:08.547 回答
0

安全异常似乎是由聊天应用程序将端口从子页面切换到父页面引起的,即使这是在同一个域上。对此的解决方案是使用 html5 规范 10.4,并在子窗口和父窗口上重新编写我的 javascript。这是当前 WHATWG 关于解决此 XSS 异常的规范:http: //www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#web-messaging

于 2013-02-06T15:24:50.530 回答