提琴手,欺骗引荐来源不工作,因为它应该
Fiddler , Spoofing Referer not working as it should
我正在尝试使用 javascript 调用网络服务 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,但响应文本表示您无权执行该操作。
在与邮递员调查请求失败的原因时。我发现添加值为 api 的服务器域名的 Referrer Header,最终返回了正确的响应。 api 的服务器似乎启用了一些引荐来源安全性,不允许 api 被并非来自该服务器的请求访问。
为了继续进行开发和测试,我安装了 fiddler,目的是在将请求发送到 api 的服务器之前拦截请求并更改引用 header。
Fiddler 版本:v4.6.20171.26113。
操作系统:linux debian
Firefox:版本 60.9.0esr(64 位)
我尝试访问的 api 是使用 https 访问的,因此我需要解密流量。
所以我去了 Fiddler -> Options -> HTTPS -> action 并在桌面上导出了根证书。之后,我在 Firefox 浏览器中添加了证书(Manage Certificated -> Authorities-> Imported the certificate extracted from fiddler)。
比我去 Fiddler -> 选项 -> HTTPS -> 启用解密 Https 流量。
我还配置了firefox的手动代理配置去提琴手(代理:本地主机,端口:8888)。
做完上面的配置后,我的网络就没了。我搜索了一下,发现这是新版 TLS 1.3 的问题。我将 firefox TLS 版本切换为 TLS 1.2 (security.tls.version.max=3) 版本。完成这些操作后,互联网访问恢复了。
我在api (bpu url) 的url 中设置了一个断点。我能够成功拦截并成功更改 Referrer header 但是当我按下 运行 完成并检查 firefox 网络中的响应时,Referer 似乎没有更改。即使我用 fiddler 拦截并更改了 header。为什么在单击 运行 完成后,我使用 Fiddler 所做的更改没有被保存?
此致,
兰多。
它解决了我的问题是:
- 安装fiddler后重启电脑
- 删除fiddler导出的证书
- 转到菜单 HTTPS -> 操作 -> 将根证书导出到桌面
- 将证书添加到 firefox (Manage Certificated -> Authorities-> Imported the certificate extracted to Desktop from fiddler).
- 检查firefox中是否有代理设置,应该是手动设置的(代理:localhost,端口:8888),8888是fiddler的端口
- 进入firefox about:config,降级tls版本。降级 tls 的配置:
security.tls.version.max=3
- 转到 Fiddler 菜单 HTTPS 并检查解密 HTTPS 流量
按照上面的步骤,我成功拦截并修改了HTTP请求头和响应。
我正在尝试使用 javascript 调用网络服务 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,但响应文本表示您无权执行该操作。
在与邮递员调查请求失败的原因时。我发现添加值为 api 的服务器域名的 Referrer Header,最终返回了正确的响应。 api 的服务器似乎启用了一些引荐来源安全性,不允许 api 被并非来自该服务器的请求访问。
为了继续进行开发和测试,我安装了 fiddler,目的是在将请求发送到 api 的服务器之前拦截请求并更改引用 header。
Fiddler 版本:v4.6.20171.26113。
操作系统:linux debian
Firefox:版本 60.9.0esr(64 位)
我尝试访问的 api 是使用 https 访问的,因此我需要解密流量。 所以我去了 Fiddler -> Options -> HTTPS -> action 并在桌面上导出了根证书。之后,我在 Firefox 浏览器中添加了证书(Manage Certificated -> Authorities-> Imported the certificate extracted from fiddler)。 比我去 Fiddler -> 选项 -> HTTPS -> 启用解密 Https 流量。 我还配置了firefox的手动代理配置去提琴手(代理:本地主机,端口:8888)。
做完上面的配置后,我的网络就没了。我搜索了一下,发现这是新版 TLS 1.3 的问题。我将 firefox TLS 版本切换为 TLS 1.2 (security.tls.version.max=3) 版本。完成这些操作后,互联网访问恢复了。
我在api (bpu url) 的url 中设置了一个断点。我能够成功拦截并成功更改 Referrer header 但是当我按下 运行 完成并检查 firefox 网络中的响应时,Referer 似乎没有更改。即使我用 fiddler 拦截并更改了 header。为什么在单击 运行 完成后,我使用 Fiddler 所做的更改没有被保存?
此致,
兰多。
它解决了我的问题是:
- 安装fiddler后重启电脑
- 删除fiddler导出的证书
- 转到菜单 HTTPS -> 操作 -> 将根证书导出到桌面
- 将证书添加到 firefox (Manage Certificated -> Authorities-> Imported the certificate extracted to Desktop from fiddler).
- 检查firefox中是否有代理设置,应该是手动设置的(代理:localhost,端口:8888),8888是fiddler的端口
- 进入firefox about:config,降级tls版本。降级 tls 的配置:
security.tls.version.max=3
- 转到 Fiddler 菜单 HTTPS 并检查解密 HTTPS 流量
按照上面的步骤,我成功拦截并修改了HTTP请求头和响应。