我正在使用Remember the Milk网络API构建Chrome扩展程序。为了调用此API中的方法,我需要使用API密钥和“共享密钥”来签署我的请求。
我担心的是,如果我将这些值包含在已发布的扩展中,任何用户都可以破解扩展并提取这些值。这可能会或可能不会对用户造成安全性上升,但他或她当然可以使用/滥用我的API密钥并可能将其撤销。
这是我应该关注的吗?在已发布的JavaScript应用程序中是否有保护此类信息的最佳实践?
答案 0 :(得分:14)
最终,你无法真正隐藏在浏览器中运行的JS应用程序中的任何内容;你可以对代码进行模糊处理或缩小代码,这会分散临时用户的注意力,但最终总是可以抓住你的明文秘密。
如果您确实需要防止这种情况发生,那么一种选择是将您的分机的呼叫传递给您有权访问的服务器。您的服务器可以添加签名所需的任何参数,将呼叫转发到相关API,并将API的响应传递回用户。当然,这会增加您可能不需要的带宽/正常运行时间限制。