Firebase 没有应用服务器,网络上的FCM安全吗?

Firebase 没有应用服务器,网络上的FCM安全吗?,firebase,firebase-cloud-messaging,Firebase,Firebase Cloud Messaging,我想从我的站点上的客户端生成消息,并将消息发送到目标设备。ajax(jquery)请求很简单,如下所示: $.ajax({ url: 'https://fcm.googleapis.com/fcm/send', type: 'POST', contentType: "application/json", dataType: 'json', data: JSON.stringify({ "notification": {

我想从我的站点上的客户端生成消息,并将消息发送到目标设备。ajax(jquery)请求很简单,如下所示:

$.ajax({
    url: 'https://fcm.googleapis.com/fcm/send',
    type: 'POST',
    contentType: "application/json",
    dataType: 'json',
    data: JSON.stringify({
        "notification": {
            "title": title,
            "body": msg,
            "sound": "default"
        },
        "to": "XXXXXXXXXXXX"
    }),
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', 'key=YYYYYYYYYY');
    }
});

但是,我不需要保持XXXXXXXXXX设备密钥和YYYYYYYY API密钥私有吗?如果没有,我担心人们会开始从完全不相关的服务中删除这些内容并发送垃圾邮件?

这绝对不安全。传递到
授权
头中的密钥称为服务器密钥,因为您只能在应用程序服务器(或您直接控制的其他进程)上使用它

如果您在每个客户端设备上运行的代码中都使用了相同的密钥,这意味着恶意用户可以(并将)复制您的服务器密钥,并使用该密钥代表您向应用程序的用户发送消息


Firebase云消息传递文档在其。我们还有一个。

我意识到我可以向应用程序服务器发送一个请求,以发送此消息并保持密钥的私密性,但我认为firebase的一个主要功能是它可以防止使用您自己的后端。总的来说,我不知道你怎么能两者兼得。如果有人发现了这一点,现在有一个答案了!