Javascript Fiddler,欺骗推荐人不能正常工作

Javascript Fiddler,欺骗推荐人不能正常工作,javascript,http,ssl,https,fiddler,Javascript,Http,Ssl,Https,Fiddler,我试图用javascript调用web服务api,如下所示 var url = "https://..."; let formData = new FormData(); formData.append("...", "..."); formData.append("...", "..."); formData.append("...", "..."); let promise = fetch(url, { method: "POST", body: formData }); p

我试图用javascript调用web服务api,如下所示


var url = "https://...";

let formData = new FormData();
formData.append("...", "...");
formData.append("...", "...");
formData.append("...", "...");

let promise = fetch(url, {
  method: "POST",
  body: formData
});

promise.then(result => {
    console.log(result);
});
响应的状态为200 OK,但响应文本表示您无权执行该操作

在与邮递员调查请求失败的原因时。我发现添加referer头的值是api的服务器域名,结果返回了正确的响应。似乎api的服务器启用了一些引用安全性,这不允许非源于该服务器的请求访问api

为了继续开发和测试,我安装了fiddler,目的是在请求发送到api服务器之前拦截请求并更改Referer头

小提琴手版本:v4.6.20171.26113

操作系统:linux debian

Firefox:60.9.0esr版(64位)

我试图访问的api使用https,因此我需要解密流量。 所以我转到Fiddler->Options->HTTPS->action并在桌面上导出根证书。之后,我在Firefox浏览器中添加了证书(管理证书->授权->导入从fiddler提取的证书)。 然后我去了Fiddler->Options->HTTPS->enable Decrypt HTTPS流量。 我还配置了FirefoxtoGoFiddler的手动代理配置(代理:localhost,端口:8888)

完成上述配置后,我的Internet访问权限消失。我搜索了一下,发现这是TLS1.3新版本的一个问题。我将firefox TLS版本切换到TLS1.2版本(security.TLS.version.max=3)。完成这些操作后,internet访问被恢复

我在api的url(bpu url)中放置了一个断点。我能够成功拦截并成功更改Referer头,但当我在firefox网络中pres run to completion并检查响应时,似乎没有更改Referer头。尽管我用fiddler截取并更改了标题。为什么我用Fiddler所做的更改在我单击run to completion后没有保存

问候,


Rando.

它为我解决的问题是:

  • 安装fiddler后重新启动计算机
  • 删除从fiddler导出的证书
  • 转到菜单HTTPS->ACTIONS->将根证书导出到桌面
  • 将证书添加到firefox(管理证书->授权->导入从fiddler提取到桌面的证书)
  • 检查firefox中是否有代理设置,应该是手动设置的(代理:localhost,端口:8888),8888是fiddler的端口
  • 进入firefox about:config,降级tls版本。降级tls的配置:
    security.tls.version.max=3
  • 转到Fiddler菜单HTTPS并检查解密HTTPS流量
在完成上述步骤之后,我能够成功地截获和修改HTTP请求头和响应