灵活运用白名单功能限制接口恶意盗用

栏目分类:帮助中心 发布时间:2022-05-09 阅读次数:3084

天行数据支持两种白名单,分别是IP白名单和Referer白名单。对应不同的场景,Referer白名单适合在前端调用接口时,限制只允许在某个页面或者某个小程序下调用接口。IP白名单适合限制后端调用接口时,只允许自己的服务器IP调用接口。通过灵活运用以上两种白名单,可以最大程度上保护你的接口不被恶意消耗。


一、ip白名单


如果您的接口是纯后端方式调用的,例如服务器内部调用接口,请求的IP相对固定。则可以通过设置IP白名单的方式拦截非法调用。格式如:119.160.1.1,用英文逗号分隔或回车键换行。支持多通配符*模式,例如119.160.1.*,保存设置后,就只有119.160.1.0-255范围下的IP可以调用接口,*表示0-255之间任意数字。其他IP调用接口会返回180=>IP请求来源受限。


在接口调用日志中会记录每次请求的IP:


请求接口的IP


在控制台 => 安全管理 => IP白名单设置中填入请求IP:


设置IP白名单

注意:请确保此处设置的是发出请求的后端固定公网IP,不能设置某个用户或自己的家庭宽带IP。如果你的请求不是从公网服务器等网络设备发出的,则此处不要随意设置。



二、Referer白名单


众多周知,熟悉Web开发的同学都知道,纯前端(包括微信/百度/支付宝等小程序)的方式发送请求调用接口,无论怎么混淆加密代码,都有可能被抓包后暴露接口密钥apikey,导致你的接口被第三方盗用。本功能是通过限制Referer请求来源的方式拦截第三方请求。


Referer解释:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该请求是从哪个页面链接过来的。


这里以微信小程序发出的请求为例,通过微信小程序发起网络请求时,一般都会带上固定的Referer,如下图:

请求接口的来源referer


大概的URI拼接规则如下:


https://servicewechat.com/{appid}/{version}/page-frame.html)


其中{appid}是你的微信小程序ID、{version} 是小程序的版本号,为 0 表示为开发版、体验版以及审核版本,为 devtools 表示为开发者工具,其余为正式版本。


在控制台 => 安全管理 => 前端防盗设置中填入微信小程序的Referer:


设置Referer来源白名单


确定后即可一定程度上拦截除了自己的微信小程序开发版外,其他第三方的恶意请求(返回170错误=>Referer请求来源受限)。Referer白名单功能支持单通配符*模式,*号表示后面部分不限。
 
需要注意的是:
一旦你设置了Referer白名单限制,后端调用时,会因为没有携带Referer信息同样会返回170错误,此时,你要么删除Referer白名单限制,要么在你的后端请求中,带上Referer信息。
Referer是个聊胜于无的功能,极易伪造。即使设置了Referer白名单限制,如果被第三方猜测和技术手段抓包了你的请求,对方也可以通过后台代理等各种方式绕过Referer限制。因此,除了保护好自己的接口密钥外,也可以通过定期重置密钥来增加第三方的盗用成本。




其他推荐OTHER API 更多>

开通会员专享福利
工单 客服