如何验证Google PubSub是否达到了我的端点,而不是另一个参与者



我有一个功能齐全的端点,当在用户的Gmail收件箱中检测到更改时,它将接收来自PubSub订阅的POST请求。在端点内部,我可以成功地提取出我所需要的一切。

问题是,我不知道谁真正达到了我的终点。一个糟糕的演员可以像Gmail一样给我传递同样的有效载荷。

我有没有办法验证我收到的有效载荷是否真的来自Google/Gmail/PubSub?

在Gmail方面:发送到我的端点的有效负载似乎无法更改,并且将始终采用此处详述的形式:https://developers.google.com/gmail/api/guides/push

在PubSub端:你可以创建自己的主题,并将键/值对作为自定义属性添加到其中,但我似乎无法修改Gmail发布到我的主题的负载。https://cloud.google.com/pubsub/docs/publisher

任何见解都将不胜感激,谢谢!

建议的方法是将secret作为端点的url参数。然后你可以拒绝任何不包括这个秘密的url。https://cloud.google.com/pubsub/docs/faq#security

当您设置推送订阅时,可以将其配置为正常推送端点的一部分。

如果你想在提供的gmail消息中添加额外的元数据,你可以直接从gmail主题将云数据流作业或云功能设置为订阅者,并在第二个主题上重新发布,你的外部端点将从中读取。

-Daniel

最新更新