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



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

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

当网站上没有可用的用户身份验证/注册时,在后端服务器上识别和验证收到的订阅的机制是什么?

为了更好地说明:

网站JS代码向浏览器请求推送权限->我通过在弹出的窗口上按"允许"来授予权限->例如,他们会使用HTTP POST将其存储在服务器上。使用一个简单的脚本,我与相同的HTTP端点建立连接,并以端点期望的格式POST更多的订阅,从而淹没后端数据库。

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

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

最新更新