gpt4 book ai didi

javascript - XMLHttpRequest、FireFox 扩展和错误代码 '1012'(访问被拒绝)

转载 作者:行者123 更新时间:2023-11-30 23:51:17 25 4
gpt4 key购买 nike

我正在开发一个 FireFox 扩展,它使用 XMLHttpRequest 从远程服务器获取数据。

JavaScript代码如下:

function _PostBackObject(data) {
var postBack = new XMLHttpRequest();
postBack.onreadystatechange =
function(){
if (postBack.readyState == 4) {
if (postBack.status == 200) {
// Success
return;
}

_ErrorOccured(postBack.status);
}
};

postBack.open("POST", postBackUrl, true, user, password); //This is line #51
postBack.send(data);
}

我在 FireFox 控制台中收到以下错误:

Error: uncaught exception: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "chrome://my_ext/content/context.js Line: 51"]

postBackUrl 可以是任何内容(出于测试目的,我一直在使用本地计算机 [127.0.0.1] 和本地网络上的服务器 [so 192.168.*.*],两者都在端口 8088 上),因为它是用户输入。

看来我被 XSS 安全措施绊倒了。我该如何解决这个问题?

一些额外的细节:

  • FireFox 3.5.3(可以限制于此及更高版本)
  • 未签名的扩展(我会自行签名,但据我所知,这很麻烦,而且对您没有任何好处)
  • 我可以完全控制远程服务器(它是自定义设置,不是 Apache 或 IIS,是用 C# 为 .NET 3.5 编写的)

最佳答案

首先,如果您从 Chrome 调用此函数,您的代码不应进行任何跨站点检查。默认情况下,Chrome 代码允许执行跨站点 XHR。您是直接从 chrome 调用它,还是以某种方式将其注入(inject)到内容中? http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsXMLHttpRequest.cpp#1736

其次,XHR 代码中只有三个位置返回该特定错误代码: http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsXMLHttpRequest.cpp#491 http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsXMLHttpRequest.cpp#1581 http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsXMLHttpRequest.cpp#2996

它们都与预检请求有关: http://www.w3.org/TR/access-control/#preflight-request

您的服务器是否收到其中之一,并且处理不当?

关于javascript - XMLHttpRequest、FireFox 扩展和错误代码 '1012'(访问被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1468295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com