在 JS 和 JSF 中隐藏 apiKey



我有几个代码片段,其中我编写了Google的api密钥或clientId,例如:

<ffu:ffuAttachDocumentFromDriveBS
        apikey="MY_API_KEY"
        clientId="MY_CLIENT_ID"
        fileId="#{documentManagerBean.fileId}"
        downloadMethod="#{documentManagerBean.downloadFileAndUploadToBeeblos()}"
        render="attachment_message, #{id_mpAttachment}_doc"/>

_doAuth: function(immediate, callback) {    
    gapi.auth.authorize({
        client_id: MY_CLIENT_ID,
        scope: 'https://www.googleapis.com/auth/drive',
        immediate: immediate
    }, callback);
}

因此,如果有人要在浏览器中检查代码,他们会看到它们。

有什么办法可以隐藏它们吗?

不可以,Google API 密钥必须放在您的 HTML 或 JS 文件中。所以,是的,每个人都可以看

但请记住,谷歌会为特定域名生成API密钥。所以,被盗的钥匙,不能使用

问题是一些开发人员没有将API密钥正确附加到他们的域,Google建议附加到特定域以防止不良使用。

Google提供了浏览器密钥和服务器密钥。浏览器密钥可以在浏览器上使用。您的服务器密钥是您不希望公开的密钥。您可以使用 Cloud Functions 或 AWS Lambda 进行服务器端 API 调用。

最新更新