仅在FireFox 18上抛出XSS异常

时间:2013-02-05 21:32:06

标签: javascript ajax firefox xss

我有一些代码可以在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异常。

2 个答案:

答案 0 :(得分:1)

你知道这在Internet Explorer中不起作用它只在caniuse.com上有部分

请参阅:http://caniuse.com/#feat=x-doc-messaging

你必须有一个后退,即

答案 1 :(得分:0)

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