我有一个由API网关服务触发的Lambda函数,但是前端应用程序可以访问此API,该应用程序不需要用户登录或注册即可使用它。
但是我想保护我的API,使其仅允许来自前端应用程序。
研究之后,我发现我可以在API Gateway中使用自定义授权,此自定义授权将检查传入请求的授权标头并对其进行验证。
问题是,我可以将Amazon Cognito用于此类(隐式授予类型)吗? 如果不是,那么前端应用程序将发送给我什么以进行验证,以及如何使其始终处于可变状态,所以没人能猜到它吗?
谢谢。
答案 0 :(得分:0)
您可以检查标头,但如果它们始终相同,则有人可以从任何客户端发送带有这些标头的HTTP请求,并欺骗您的Lambda认为它来自您的UI。
即使您每次加载UI时都生成一个唯一的令牌并将其包含在标题中,也有人可以获取该令牌并发送来自另一个客户端的请求。
您可以构建精美的JavaScript技巧来使标头更加动态,但这只会使从另一个客户端使用API变得更加困难,并非没有可能。