在前端存储客户端提交的 API 个密钥
Storing API Keys submitted by client in frontend
我知道 API 密钥需要安全存储,客户端不应访问。话虽这么说,我也知道很多 Wordpress 插件/自定义站点/等允许用户将 API 键复制粘贴到管理面板上的文本输入中。
我的问题是如何安全地执行此操作?他们会对其进行哈希处理并将其保存到他们的数据库中吗?
举例来说,我制作了一个 React 应用程序或 wordpress 插件,允许用户使用 Google 地图 API 做一些事情。我知道我可以去获取他们的 API 密钥并将其硬编码进去...但是如果我想让用户自己更新密钥 - 推荐的步骤是什么?
谢谢!
如果我的理解正确,您希望您的应用程序处理第三方 API 的机密。有点可怕,但如果你得到用户的同意——为什么不呢?第一件事——确保用户明白他在做什么。准确指出您将使用 API 密钥做什么,不使用 API 密钥做什么以及如何保护它们。
就我个人而言,我永远不想将此类机密存储在我自己的数据库中,因为这会导致单点故障。当你被黑客攻击时,每个人都会被黑客攻击。为什么不把这样的秘密放在——比如——本地存储中,这样它就永远不会接触到你的任何一台服务器?
好的,如果是您的服务器需要做某事,您可以获取请求中传递的 API 密钥,做某事,但永远不要在任何地方记录或永久存储秘密。
如果 Java 脚本足以完成工作,本地存储是更好的解决方案。
可以考虑对本地存储中的密钥进行加密,但我认为这不会大大提高安全性。我的意思是,这将通过默默无闻的方式实现安全,并且可以被对 machine/browser/user 代理具有物理访问权限的人绕过。但是如果有人有这样的访问权限,那么 API 键中的一些可能是较小的问题之一。
我知道 API 密钥需要安全存储,客户端不应访问。话虽这么说,我也知道很多 Wordpress 插件/自定义站点/等允许用户将 API 键复制粘贴到管理面板上的文本输入中。
我的问题是如何安全地执行此操作?他们会对其进行哈希处理并将其保存到他们的数据库中吗?
举例来说,我制作了一个 React 应用程序或 wordpress 插件,允许用户使用 Google 地图 API 做一些事情。我知道我可以去获取他们的 API 密钥并将其硬编码进去...但是如果我想让用户自己更新密钥 - 推荐的步骤是什么?
谢谢!
如果我的理解正确,您希望您的应用程序处理第三方 API 的机密。有点可怕,但如果你得到用户的同意——为什么不呢?第一件事——确保用户明白他在做什么。准确指出您将使用 API 密钥做什么,不使用 API 密钥做什么以及如何保护它们。
就我个人而言,我永远不想将此类机密存储在我自己的数据库中,因为这会导致单点故障。当你被黑客攻击时,每个人都会被黑客攻击。为什么不把这样的秘密放在——比如——本地存储中,这样它就永远不会接触到你的任何一台服务器?
好的,如果是您的服务器需要做某事,您可以获取请求中传递的 API 密钥,做某事,但永远不要在任何地方记录或永久存储秘密。
如果 Java 脚本足以完成工作,本地存储是更好的解决方案。
可以考虑对本地存储中的密钥进行加密,但我认为这不会大大提高安全性。我的意思是,这将通过默默无闻的方式实现安全,并且可以被对 machine/browser/user 代理具有物理访问权限的人绕过。但是如果有人有这样的访问权限,那么 API 键中的一些可能是较小的问题之一。