security - 防止出现在前端发出的请求中的 GCP 访问令牌的欺诈性使用
问题描述
我的 Web 应用程序的前端使用访问令牌(由后端定期生成)向 GCP 文本转语音发出请求。从前端而不是后端发出请求对于降低我的服务成本和用户所经历的延迟至关重要。
不怀好意的用户可能会使用我的应用程序来合成短文本的语音,打开浏览器工具的网络选项卡,然后从我的前端发送到 GCP 的请求标头中获取访问令牌。此后,他可以使用此访问令牌为大量文本合成语音,而我无法捕捉到他。如何更改使用访问令牌的方式以防止这种欺诈性使用?
以下是我考虑过的一些方向,但不确定 GCP 支持什么或是否有更好的方法:
为我的应用程序的每个用户创建一个单独的 API 密钥,并为特定用户生成访问令牌。然后,即使用户在我的应用程序之外使用他的令牌,GCP 也会记录该用户提出的请求,我可以使用 API 请求该记录以向他收费。
使访问令牌一次性使用。这样,即使用户获得了作为请求的一部分发送的访问令牌,他也无法将其用于另一个请求。
解决方案
正如 John Hanley 提到的,您宁愿更改您的设计,以便后端代表授权客户向 Text-to-Speech 发出请求
推荐阅读
- python - 按空格后如何播放动画?
- python - 设置 Keras 模型可训练与使每一层可训练有什么区别
- python-3.x - 如何在python3中为列表循环设计一个生成器
- javascript - 如何在 url 中加载 css 类?有可能这样做吗?
- sql - 计算周名称的数量
- kubernetes - Kubernetes - 如何编辑 CoreDNS 核心文件配置图?
- r - R Shiny - 1 行中的多个 valueBoxes
- arrays - 比较日期时遍历名称
- reactjs - 默认情况下使用 react-table 展开子组件行
- react-native - [未处理的承诺拒绝:TypeError:未定义不是对象(评估'_expoPermissions.Permissions.getAsync')]