提问人:user1022788 提问时间:3/2/2023 更新时间:3/3/2023 访问量:516
如何最好地保护 iframe 小组件中的 API 密钥
How to best secure an API key in an iframe widget
问:
我正在开发一个 Javascript 小部件,它将使用 Iframe 嵌入到客户端站点上。
小部件代码使用 API 密钥对我的后端服务进行 API 调用。每个不同客户端的 API 密钥将更改。
目前,API 密钥在 iframe src 标签中可见。这意味着任何人都可以轻松地在页面源代码中找到 API 密钥,而未经授权的用户也可以进行 API 调用。
在这种情况下,保护 API 访问的最佳方法是什么?我考虑过使用客户端密钥来加密 API 密钥,但这并不能解决问题,因为任何拦截密钥的人仍然可以在 API 后端进行验证和调用。
网上已经有一些关于这个问题的问题,但没有一个关于如何实施的详细建议。
我的小部件是由React.js应用程序生成的HTML,API后端是Ruby on Rails。
答:
1赞
Ryan Kopf
3/3/2023
#1
谷歌地图允许您嵌入地图,例如 https://mapsurl.com/?address=123Street&api_key=KDFJSDKFHSH
关键是公开的。它之所以安全,是因为他们检查了引荐来源网址。它不能在其他网站上使用,因为它们会发送错误的推荐人。因此,如果您要创建一个人们可以嵌入到其网站中的小部件,则可以从他们那里收集嵌入将来自的 URL,并在没有该引用的情况下拒绝请求。
评论