上海办公室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

相关文章
|
2月前
|
JSON 安全 Serverless
在使用阿里云函数计算(FC)服务时,您可以通过自定义域名来访问部署好的云函数
在使用阿里云函数计算(FC)服务时,您可以通过自定义域名来访问部署好的云函数【1月更文挑战第23天】【1月更文挑战第112篇】
150 7
|
2月前
|
域名解析 缓存 网络协议
当使用IP地址可以访问应用系统,但通过域名无法访问时
【1月更文挑战第14天】【1月更文挑战第68篇】当使用IP地址可以访问应用系统,但通过域名无法访问时
31 6
|
2月前
|
JSON 应用服务中间件 API
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
38 1
|
6月前
|
Java API
使用Java访问API的示例
下面是一个使用Java访问API的示例代码:
|
6月前
|
JavaScript API
使用Node.js访问API的示例
下面是一个使用Node.js访问API的示例代码:
|
6月前
给 Hexo 配置自定义域名进行访问
给 Hexo 配置自定义域名进行访问
62 0
|
1天前
|
数据采集 JavaScript API
第三方系统访问微搭低代码的后端API
第三方系统访问微搭低代码的后端API
|
9天前
|
域名解析 缓存 网络协议
使用IP地址可以访问应用系统,但通过域名无法访问时
使用IP地址可以访问应用系统,但通过域名无法访问时
16 1
|
5月前
|
域名解析 网络协议
如何为树莓派上的WordPress博客网站配置自己的域名,并且外网可访问?
如何为树莓派上的WordPress博客网站配置自己的域名,并且外网可访问?
|
21天前
|
域名解析 弹性计算 缓存
DNS问题之无法通过域名访问如何解决
DNS服务器是负责将域名转换为IP地址的服务,它是互联网上实现域名解析的关键基础设施;本合集将探讨DNS服务器的工作原理、配置方法和常见问题处理,帮助用户理解和优化DNS服务的使用。
43 2

热门文章

最新文章

相关产品

  • 云迁移中心