我正在使用Remember the Milk网络API构建Chrome扩展程序。为了调用该API中的方法,我需要使用API密钥和“共享密钥”来签署我的请求。
我的担忧是,如果我将它们包含在发布的扩展程序中,任何用户都可以打开扩展程序并提取这些值。这可能对用户构成安全风险,但他或她肯定可以使用/滥用我的API密钥,并可能让其被吊销。
这是我应该担心的问题吗?在已发布的JavaScript应用程序中保护此类型信息有没有最佳实践?
我的担忧是,如果我将它们包含在发布的扩展程序中,任何用户都可以打开扩展程序并提取这些值。这可能对用户构成安全风险,但他或她肯定可以使用/滥用我的API密钥,并可能让其被吊销。
这是我应该担心的问题吗?在已发布的JavaScript应用程序中保护此类型信息有没有最佳实践?
在浏览器中运行的JS应用程序内,您最终无法真正隐藏任何内容。您可以混淆或缩小代码,这会使普通用户分散注意力,以免窥探,但最终始终有可能获取您的纯文本密钥。
如果您真的需要防止这种情况发生,则一个选项是将扩展程序的调用传递到您可以访问的服务器上。您的服务器可以添加任何所需的参数进行签名,将调用转发给相关API,并将API的响应传递回用户。当然,这会增加带宽/正常运行时间限制,这可能不是您想要的。