天行数据接口防盗刷设置

通过纯前端的方式调用接口,无论怎么混淆加密代码,都将不可避免的会暴露接口密钥apikey,导致你的接口被第三方盗用。本功能是通过限制Referer来源的方式在一定程度上拦截第三方请求。
Referer解释:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

 这里以微信小程序为例:
在天行数据控制台 - 接口管理 - 接口请求日志 - INFO一栏中可以看到请求接口的Referer来源信息
微信截图_20191231101313.png

 
通过微信小程序发起网络请求时,默认都会带上固定的Referer信息(如:https://servicewechat.com/{appid}/{version}/page-frame.html)
 
其中{appid}是你的微信小程序ID、{version} 是小程序的版本号,为 0 表示为开发版、体验版以及审核版本,为 devtools 表示为开发者工具,其余为正式版本。
 
在控制台 - 接口管理 - 防盗用设置中填入微信小程序的Referer:

微信截图_20191231095700.png

 
即可一定程度上拦截除了自己的微信小程外,其他第三方的恶意请求(返回170错误)。如上图所示,只允许在输入框中的三个来源URL下访问,如果只输入https://www.tianapi.com/demo/robot/,则表示接口只能在https://www.tianapi.com/demo/robot/网页下才能被正常调用。
 
需要注意的是:
一旦你设置了Referer白名单限制,后端调用时,会因为没有携带Referer信息同样会返回170错误,此时,你要么删除Referer白名单限制,要么在你的后端语言中,带上Referer信息。
 
另外,即使设置了Referer白名单限制,如果被第三方猜出了你的Referer白名单所包含的来源链接,对方也可以通过后台代理的方式绕过Referer限制,因此,你需要尽可能的隐藏好你的Referer白名单信息和接口密钥apikey。