邯郸接口安全三板斧,防重放防越权防泄密
接口会不会被人刷?这是邯郸不少企业都在琢磨的事。先说结论:会,只要它能被外面访问。有人专门扫描接口,找没做校验的漏口。防护不难,难的是开工时没想到这一层。邯郸主城区跨滏阳河两岸,东部新区这些年在往东扩。
第一板斧防重放
重放就是把同一个请求再发一遍。没有防护的接口,重复提交会重复下单、重复扣款。常见做法是加时间戳和随机串,服务端只接受一次。磁县有家公司做的是积分兑换,被人重放了几十次。加上一次性校验后,问题立刻消失。这个改动很小,效果很直接。
时间戳的窗口别设太长。一般 5 分钟内有效比较合适,太长等于没防。同时把用过的随机串缓存一段时间,重复的直接拒掉。我们做接口时会把这套做成公共组件,所有写接口统一走。临漳有家门店上了组件之后,同类问题再没出现过。统一做,比逐个补靠谱。
第二板斧防越权
越权是拿着自己的身份去看别人的数据。表现就是改一下订单号,能查到别人的订单。这类问题最危险,因为看起来像功能正常。每一次查询都要校验数据归属,不能只校验登录状态。我们做权限设计时会要求每个接口都明确归属判断。复兴区一家厂子靠这条检查,提前发现了一个隐患。
第三板斧防泄密,日志兜底
接口返回的字段要给多少,是个选择题。手机号、身份证这类信息要脱敏,能不给就不给。同时接口日志要记全,包括调用方、参数摘要和结果状态。我们做交付时会把日志留存写进验收清单。丛台区那边有家商户就是靠日志定位到异常调用来源。日志不白留,出事它是唯一的线索。
常见问题
接口安全要做哪些基础项
至少要有时效校验、重复请求拦截、数据归属判断和返回字段脱敏,这四项是基础。
要不要限制调用频率
建议限。同一个来源短时间高频调用要拦截,能挡住大部分扫描和爬取。
接口日志要存多久
建议至少 90 天。涉及资金或敏感信息的建议存 6 个月以上。
邯郸的企业做接口安全,防重放、防越权、防泄密这三板斧先做上。这三条改动都不大,少一条都可能出事。有空说说接口数量和对外还是对内就行。具体怎么做,信服无限邯郸会先出一版思路给你看。