【问题标题】:Decrypting Webpush payload on a Ruby server在 Ruby 服务器上解密 Webpush 有效负载
【发布时间】:2019-07-24 02:38:53
【问题描述】:

我正在寻找一种方法来解密发布到 Ruby 服务器的 Webpush 消息。通常,webpush 会发送到用户代理,例如 Web 浏览器,然后浏览器会对其进行解密。在这种特殊情况下,我将 webpush 配置为转到我想进一步处理它们的 Ruby 服务器。我看过 https://github.com/zaru/webpush 这样的宝石,但它似乎只处理加密方面的事情。

使用 ruby​​ 服务器解密 webpush 消息的最佳方法是什么?

【问题讨论】:

  • 这是您正在尝试做的一些非常有趣的事情:P
  • 使用这个和消息队列相比有什么好处?
  • ruby server 是不是直接接收到另一台服务器的消息?还是客户端发送加密消息?
  • 您是否尝试过webpush/encryption_spec.rb 使用的ECE gem 来验证加密数据?

标签: ruby-on-rails ruby web-push


【解决方案1】:

您可以使用以下 C 库来解密通常由网络浏览器解密的那些消息,但我相信还有更多。

https://github.com/web-push-libs/ecec#web-push

【讨论】:

  • 我需要弄清楚如何在 Ruby 中做到这一点,上面的代码是用 C 语言编写的,我无法验证它在做什么或它是如何工作的。
  • 您可以通过系统调用从 ruby​​ 内部调用该库
【解决方案2】:

我之前没有学过任何关于 WebPush 的知识,但是如果浏览器像你说的那样“自动解密”,那么这里有一个疯狂的想法可以让你启动并运行:

通过使用browser automation 在服务器上运行 Chrome,将您的服务器用作“受信任的中间人”。

通过控制浏览器,你可以让它接收到“正常”的WebPush,然后你也可以在网页上编写和注入额外的JavaScript,将它解密后发布到本地服务器。

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2019-06-20
    • 2013-04-26
    • 2016-03-12
    相关资源
    最近更新 更多