【问题标题】:Storing Subscriptions for Web Push notifications securely JS/Node.js安全地存储 Web 推送通知的订阅 JS/Node.js
【发布时间】:2020-06-10 12:30:20
【问题描述】:

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

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

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

为了更好地说明:

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

【问题讨论】:

    标签: javascript node.js push-notification web-push


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-19
      • 2021-10-16
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多