Javascript Fiddler,欺骗推荐人不能正常工作
我试图用javascript调用web服务api,如下所示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
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流量