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

如何配置AWS API Gateway仅允许自研Firefox扩展调用

如何限制AWS API Gateway仅允许特定Firefox扩展调用?

直接通过配置Access-Control-Allow-Origin没法实现精准限制,因为Firefox扩展的请求源是moz-extension://<随机UUID>,每个用户安装的扩展UUID都不一样,没法预先指定固定的Origin值。不过可以通过以下几种方案来实现访问限制:

方案一:自定义请求头验证

这是最简便的方案:

  • 在你的Firefox扩展的XMLHttpRequest代码里,添加一个自定义请求头,比如:
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '你的API网关地址');
    xhr.setRequestHeader('X-Extension-Secret', '你预先设定的专属密钥');
    xhr.send();
    
  • 在AWS API Gateway中,创建请求验证器,配置规则检查请求中是否存在X-Extension-Secret头,且值与你预设的密钥完全匹配
  • CORS配置保持Access-Control-Allow-Origin: *(因为扩展源是动态的),但配合请求头验证,只有携带正确密钥的请求才会被网关处理,其他请求直接被拒绝

方案二:API密钥验证

利用AWS API Gateway自带的API密钥功能:

  • 在API Gateway控制台生成一个API密钥,并绑定到对应的使用计划
  • 扩展的XHR请求中携带这个密钥到x-api-key请求头:
    xhr.setRequestHeader('x-api-key', '你的API密钥');
    
  • 在API Gateway的资源或方法上启用API密钥验证,只有携带有效密钥的请求才能通过

方案三:IAM身份认证(适合高安全要求场景)

如果需要更严格的身份验证,可以使用AWS IAM的SigV4签名:

  • 为你的扩展创建一个IAM角色,授予调用该API网关的权限
  • 在扩展中实现SigV4签名逻辑,对请求进行签名后再发送
  • API Gateway配置为仅接受经过IAM签名的请求

注意事项

  • 无论用哪种方案,都要注意保护扩展里的密钥/凭证,避免被逆向破解。可以做简单的代码混淆,或者使用Firefox扩展的storage.local加密存储凭证,但无法完全防止破解,只能提高攻击者的门槛
  • 测试阶段用*作为Origin没问题,但发布后必须配合上述验证机制,避免API被滥用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:55:13