我有一个功能齐全的终结点,当在用户的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
任何见识将不胜感激,谢谢!
答案 0 :(得分:1)
建议的方法是将秘密作为端点的url参数。然后,您可以拒绝任何不包含此秘密的网址。 https://cloud.google.com/pubsub/docs/faq#security
可以在设置推送订阅时将其配置为普通推送端点的一部分。
如果您希望向所提供的gmail消息中添加额外的元数据,则始终可以直接从gmail主题中直接将云数据流作业或云功能设置为订户,然后重新发布外部端点将从中读取的第二个主题
-丹尼尔