Google chrome extension 请求简单API访问密钥时的Referer安全性

Google chrome extension 请求简单API访问密钥时的Referer安全性,google-chrome-extension,google-api,Google Chrome Extension,Google Api,我在Google Chrome的扩展中工作。扩展在发出请求时不发送“Referer”头,但可以(潜在地)使用chrome.webRequest.onBeforeSendHeaders修改此行为 我正在尝试与谷歌的YouTube V3 API进行通信。为此,我必须提供一个API密钥。对其服务器的成功请求如下所示: $.ajax({ url: 'https://www.googleapis.com/youtube/v3/playlists?part=snippet&id=ALYL4k

我在Google Chrome的扩展中工作。扩展在发出请求时不发送“Referer”头,但可以(潜在地)使用chrome.webRequest.onBeforeSendHeaders修改此行为

我正在尝试与谷歌的YouTube V3 API进行通信。为此,我必须提供一个API密钥。对其服务器的成功请求如下所示:

$.ajax({
    url: 'https://www.googleapis.com/youtube/v3/playlists?part=snippet&id=ALYL4kY05133rTMhTulSaXKj_Y6el9q0JH&key=AIzaSyBWegNdKdnwKGr2bCKRzqXnWw00kA7T2lk',
    success: function (response) {
        console.log("Success", response);
    },
    error: function (error) {
        console.log("Error:", error);
    }
});
现在,此请求有效,因为我已转到my,并创建了一个简单API访问浏览器键,其允许的引用设置为:

推荐人:允许任何推荐人

对我来说,这似乎是一个安全缺陷,因为我希望确保只有我的程序才允许查询API。然而,谷歌已经非常清楚,他们不在乎这个漏洞,因为任何人都可以随时请求API密钥

也就是说,我想知道这是否是正确的实现。Google API控制台中有一个区域,允许您定义与特定Google Chrome扩展相关联的“已安装应用程序的客户端ID”

一旦配置了这个已安装的应用程序客户端ID,我就可以与

这将为给定的客户机生成一个有效的OAuth2身份验证令牌,就安全性而言,这绝对是我感兴趣的。但是,我不能使用这个OAuth2令牌来满足GoogleAPI请求。它不承认OAuth2令牌是有效的客户端ID(为什么应该?),也不提供任何接受OAuth2令牌的方法

所以,我被留在这里。我有一种方法可以请求相对安全的令牌,但在请求中它实际上不可用。而且,我有一个替代的,难以置信的不安全的方法来生成一个API密钥,它可以开箱即用

还有其他人经历过吗?应该怎么做