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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

我们的测试部门经常需要在淘宝的工具页面上测试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

相关文章
|
6天前
|
JSON API 开发工具
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
|
2天前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7天前
|
SQL 开发框架 网络协议
【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)
【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)
|
7天前
|
Web App开发 缓存 小程序
【Azure API 管理】从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
【Azure API 管理】从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
|
2天前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之海外是否可以访问人物动漫化的api版本
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
10 0
|
6天前
|
存储 安全 API
【Azure API Management】实现在API Management服务中使用MI(管理标识 Managed Identity)访问启用防火墙的Storage Account
【Azure API Management】实现在API Management服务中使用MI(管理标识 Managed Identity)访问启用防火墙的Storage Account
|
6天前
|
API C#
【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
|
7天前
|
API Python
【Azure API 管理】API Management 访问限制策略[quota-by-key] 中参数 [renewal-period] 的实验和理解
【Azure API 管理】API Management 访问限制策略[quota-by-key] 中参数 [renewal-period] 的实验和理解
|
7天前
|
网络协议
【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
|
7天前
|
API 开发者
【Azure API 管理】API Management service (APIM) 如何实现禁止外网访问
【Azure API 管理】API Management service (APIM) 如何实现禁止外网访问
下一篇
云函数