安全地存储 Web 推送通知的订阅 JS/Node.js

Storing Subscriptions for Web Push notifications securely JS/Node.js

我已经阅读了几篇关于为桌面浏览器实现 Web 推送通知的介绍性文章,但我无法理解在后端服务器上存储从用户浏览器获得的订阅背后的安全部分。

有许多网站要求获得向您发送推送通知的权限,而无需先在这些网站上 authenticating/registering。如果我确实授予他们权限并且他们将此权限字符串存储到他们的后端服务器上供以后使用,谁能说我不会生成另一个订阅字符串并将其发送到他们用来保存我的订阅的后端服务器端点?并因此用订阅条目淹没他们的数据库。

当网站上没有 authentication/registration 可用用户时,后端服务器上接收订阅的识别和验证机制是什么?

为了更好地说明:

网站 JS 代码向浏览器请求推送权限 -> 我通过在弹出的 window 上按 'allow' 授予它 -> 他们使用 HTTP [=24] 获取并存储在他们的服务器上=] 例如。我使用一个简单的脚本与相同的 HTTP 端点建立连接,并以与端点预期相同的格式 POST 更多订阅,因此淹没了后端数据库。

在大量阅读和咨询一种流行的 Web 推送通知服务后,我确认当使用该通知的网站上没有可用的身份验证时,确实有可能用伪造的订阅 URL 淹没后端服务器的数据库服务。

防御此类攻击的方法与防御DDoS攻击的方法类似:IP过滤、手动删除数据库条目等