You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel中拦截非授权恶意API调用,避免第三方付费接口产生额外成本

无登录访客场景下的地址查询接口防恶意请求方案

核心思路

兼顾访客无登录使用需求,从「请求合法性校验」、「频率限制」、「成本兜底」三个维度层层拦截恶意请求,规避固定Token被抓包复用、无用户体系无法做身份校验的问题。

具体实现方案

  • 前端动态签名校验,避免Token静态泄露
    前端表单加载时,由你的非Laravel业务站生成一次性临时签名参数:用当前时间戳+随机字符串+自定义密钥做哈希签名,请求Laravel接口时必须携带「时间戳、随机字符串、签名值」三个参数。Laravel侧做两层校验:
    1. 校验时间戳与当前服务器时间差不超过60秒,过期直接拒绝
    2. 用相同的密钥和算法重算签名,与请求携带的签名比对,不一致直接拒绝
      该方案下抓包拿到的签名1分钟内就会失效,无法复用做批量请求。
  • 接口侧严格频率限制
    直接复用Laravel自带限流中间件throttle做多层限流:
    1. 按请求IP限流:配置throttle:10,1即单个IP每分钟最多请求10次,完全覆盖普通用户填错、修改地址的正常使用需求,拦截批量爬虫请求
    2. 按请求的邮编+门牌号组合限流:相同的地址查询请求1小时内只允许调用1次第三方接口,重复请求直接返回缓存结果,避免重复查询产生的冗余成本
  • 缓存降低第三方调用频次
    把已经查询过的邮编+门牌号对应的地址结果存入Laravel缓存,有效期可设30天,相同地址的后续请求直接返回缓存内容,不用调用第三方付费接口,即使有漏过的异常请求也不会产生额外成本
  • 异常请求兜底拦截
    提前预设单日第三方接口调用量阈值(比如设置为平时日均调用量的2倍),当调用量触达阈值时自动暂停调用第三方接口,返回「当前地址查询服务繁忙,请稍后重试」的提示,避免极端情况下产生超额成本。

补充说明

该套方案不需要用户登录,也不需要在前端存储长期有效的固定Token,同时完全适配你当前的非Laravel前端站+Laravel接口的技术架构,改造成本极低。

内容的提问来源于stack exchange,提问作者The Stompiest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:45:04