上海办公室api.taobao.com域名的访问说明

简介:

我们的测试部门经常需要在淘宝的工具页面上测试api接口调用情况。但是淘宝对api调用有一个白名单限制,一个appkey只允许相应的白名单里的ip地址去调用。所以我们必须伪装一下自己的请求,让它看起来是来自于白名单里的IP。

最简单的方式就是走http代理了。但是在测试中发现,走代理后,淘宝依然能解析到真实IP。这是由于http代理服务器转发请求的时候,会加入一些 X-FORWARDED 相关的字段,标明原始请求IP。淘宝可能是通过这个来发现我们的真实IP的。所以我们需要设置一下http代理去掉这个字段。

 

但问题在于,在做这种设置后,只有通过淘宝SDK 做的调用才正常,通过淘宝tool工具页面调用的依然提示ip地址不允许。

通过分析请求发现, sdk 调用的请求数据比较精简,只包含api业务相关的信息(比如 appkey,secret等),这样的话,走不走代理淘宝检测不出来(当然,这里指的是在代理服务器不加入一些X-FORWARDED等信息字段的情况下),所以顺利调用了。

而工具页面的请求数据比较复杂,有很多不明字段,可能这些字段里的信息帮助淘宝解析到我们的请求走过代理?不过这次它解析出的ip也不是我们的真实IP了,而是淘宝的内部IP。。所以也可能是一个淘宝的bug。

 

只好换一种方法。实际上只要请求过去的时候源 ip 是淘宝允许的地址就行,这个可以通过 linux 的 iptables 来做到。

比如: 在我们的白名单服务器 223.5.20.18 ( dmz到内部ip 192.168.100.1) 上配置两条规则:

 

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 110.75.26.154

iptables -t nat -A POSTROUTING -p tcp --dport 80 -d 110.75.0.0/16 -j SNAT --to-source 192.168.100.1

 

然后,在办公室的路由器上做一条域名转发,把 api.taobao.com 解析到 223.5.20.18 。

 

做好后应该就可以在工具页面正常调用了。

 

具体过程是:请求发送到 223.5.20.18 服务器的 80 端口, 服务器根据 iptables 的DNAT规则把请求目标地址改成 110.75.26.154 (淘宝的api服务器), 然后根据SNAT规则把 请求源地址 换成 服务器本身的ip ( 由于dmz的关系,这里是192.168.100.1 )。淘宝接到请求,发现源ip是 223.5.20.18,在白名单里头,顺利通过,返回响应给 223.5.20.18,之前的路径反过来走一遍,调用成功。



本文转自 Bruceweien 51CTO博客,原文链接:http://blog.51cto.com/bruceweien/1932407

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
3月前
|
JSON 安全 Serverless
在使用阿里云函数计算(FC)服务时,您可以通过自定义域名来访问部署好的云函数
在使用阿里云函数计算(FC)服务时,您可以通过自定义域名来访问部署好的云函数【1月更文挑战第23天】【1月更文挑战第112篇】
223 7
|
3月前
|
域名解析 缓存 网络协议
当使用IP地址可以访问应用系统,但通过域名无法访问时
【1月更文挑战第14天】【1月更文挑战第68篇】当使用IP地址可以访问应用系统,但通过域名无法访问时
44 6
|
3月前
|
JSON 应用服务中间件 API
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
93 1
|
7月前
|
Java API
使用Java访问API的示例
下面是一个使用Java访问API的示例代码:
|
6月前
|
安全 Java API
解决 Swagger API 未授权访问漏洞:完善分析与解决方案
Swagger 是一个用于设计、构建、文档化和使用 RESTful 风格的 Web 服务的开源软件框架。它通过提供一个交互式文档页面,让开发者可以更方便地查看和测试 API 接口。然而,在一些情况下,未经授权的访问可能会导致安全漏洞。本文将介绍如何解决 Swagger API 未授权访问漏洞问题。
|
6天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
18天前
|
关系型数据库 MySQL 数据安全/隐私保护
使用docker快速搭建wordpress服务,并指定域名访问
通过以上步骤,你可以使用Docker快速搭建WordPress服务,并通过指定的域名进行访问。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
19 1
|
1月前
|
JavaScript 前端开发 应用服务中间件
通过域名的方式访问服务器里的资源
通过域名的方式访问服务器里的资源
24 0
|
1月前
|
存储 分布式计算 API
adb spark的lakehouse api访问内表数据,还支持算子下推吗
【2月更文挑战第21天】adb spark的lakehouse api访问内表数据,还支持算子下推吗
107 2
|
6月前
|
域名解析 网络协议
如何为树莓派上的WordPress博客网站配置自己的域名,并且外网可访问?
如何为树莓派上的WordPress博客网站配置自己的域名,并且外网可访问?