API密钥的重要性
API密钥是现代无代码开发的核心组件。没有它们,无代码工具将无法与其他服务和数据源进行通信。例如,使用WeWeb构建的前端应用将无法安全地与Xano后端进行通信,除非使用API密钥(或其变体,即身份验证令牌)。
前端应用中API密钥的可见性
存储在前端应用中的所有内容对用户都是可见的,即使这些内容没有在页面上显示。因此,人们可能会认为在前端应用(如WeWeb)中存储API密钥可能会构成重大的安全风险。但实际上,有多种方法可以处理这个问题。
公有和私有API密钥
公有API密钥:设计用于与第三方开发者共享,通常用于访问非敏感数据,如只读信息(如天气信息或股票价格)。它们还用于识别进行API调用的实体(无论是用户还是应用)。公有密钥通常可以公开获取,任何人都可以使用它们,这使得它们成为分发数据和促进API使用的一种便捷方式。
私有API密钥:旨在保密,用于访问敏感数据或代表用户执行操作。私有密钥绝不应共享,开发人员必须采取严格措施确保其安全。在使用私有密钥时,必须实施适当的身份验证和授权机制,以确保只有授权用户才能访问它们。
以Stripe为例说明公有和私有API密钥
Stripe是一个支付处理系统,允许用户在应用中为您的服务付款。由于支付数据非常敏感,Stripe为我们提供了公有和私有API密钥。
公有API密钥(发布密钥):用于客户端代码,如Web或移动应用。公有API密钥用于创建代表敏感客户信息(如信用卡详情)的令牌或源,然后将令牌或源发送到服务器端代码进行进一步处理。将公有API密钥包含在客户端代码中是安全的,因为它具有有限的权限,无法访问敏感数据或执行关键操作(如创建收费或退款)。公有API密钥通常以“pk_”为前缀,后跟一系列字母数字字符。
私有API密钥(秘密密钥):用于服务器端代码,不应暴露给客户端或面向公众的代码。私有API密钥可以访问您的Stripe账户并执行各种操作,如创建收费、管理订阅和处理退款。由于私有API密钥可以访问敏感信息并执行关键操作,因此必须确保其安全并防止未经授权的访问。私有API密钥通常以“sk_”为前缀,后跟一系列字母数字字符。
如何使用公有和私有API密钥
在构建应用的客户端部分(通常是Web应用的前端或移动应用)时,使用公有密钥。
所有从前端发出的API调用都有可能被简单地观察(例如,使用浏览器开发工具)来拦截和解密。
仅通过后端(如Xano端点、Make自动化、自定义服务器等)使用私有密钥。当需要进行需要私有密钥的API调用时,使用后端作为代理。
当工具仅提供一个私有API密钥时的处理方法
有些工具(如Airtable)仅提供一个具有无限权限的API密钥,应将其视为私有API密钥。
对于这些工具,您不应从前端应用直接对其进行API调用。相反,您需要使用一个后端作为代理。
在WeWeb中,您可以使用我们的插件来避免这个问题。当您使用我们的插件时,我们在自己的服务器上存储API密钥,并为您代理API调用。
结论
在前端无代码应用中安全地使用API密钥是可行的,只要您使用公有API密钥。
当需要进行需要私有API密钥的敏感API调用,或对于仅提供私有API密钥的工具时,请使用后端作为代理或WeWeb插件。
通过遵循这些最佳实践,您可以确保您的应用安全无虞,同时仍然可以利用API的强大功能和灵活性。

