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

如何确保AWS Lambda仅接受前端网站的合法HTTPS请求?

Lambda 函数安全防护方案

一、强化请求真实性验证,弥补CORS的局限性

  • 添加请求签名校验:采用HMAC算法,前端结合短期密钥、请求参数、时间戳生成签名后随请求发送;Lambda接收请求后重新计算签名并比对。注意密钥不能硬编码在前端源码,可通过Cloudflare Workers或AWS Amplify动态下发短期有效密钥。
  • 校验专属请求头:如果用Cloudflare Pages托管,Lambda可校验CF-RAY、CF-Zone-ID等Cloudflare专属请求头,确保请求是由Cloudflare转发的合法来源;若迁移到Amplify,可校验Amplify SDK自动添加的身份验证头。

二、利用AWS生态构建安全调用链路

  • 用API Gateway替代直接暴露Lambda URL:
    • 配置AWS WAF规则:拦截高频调用、异常参数格式等恶意请求
    • 启用API密钥验证:给前端分配专属API密钥,请求时携带,API Gateway先校验密钥再转发到Lambda
    • 集成Amazon Cognito:若网站有用户体系,要求请求携带Cognito ID Token,API Gateway验证Token合法性后再放行
  • Amplify环境下的原生安全适配:迁移到Amplify后,使用Amplify Functions配合Amplify Auth,前端通过Amplify SDK调用函数,SDK会自动处理签名和身份校验,无需直接暴露Lambda URL;同时可在Amplify控制台配置函数的访问权限,仅允许经过认证的用户或指定域名调用。

三、限流与滥用防护

  • 设置Lambda并发限制:配置函数的预留并发数,避免恶意调用耗尽资源
  • 实现请求频率控制:在Lambda或API Gateway中,基于IP或用户身份记录请求次数,限制单位时间内的请求量(比如每分钟不超过10次)
  • SNS侧内容校验:Lambda发布消息到SNS前,校验消息格式(如邮箱合法性、内容长度),过滤垃圾内容,避免邮箱被恶意轰炸

四、隐藏Lambda调用端点

  • 不要将Lambda URL硬编码在前端源码,通过Cloudflare Workers或Amplify环境变量动态获取;或使用API Gateway的自定义域名,让前端调用的是你的自有域名接口,而非直接的Lambda URL

内容的提问来源于stack exchange,提问作者Jaime Elso de Blas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:45:32