pubnub 在前端暴露订阅密钥和发布密钥

pubnub exposed subcribe key and publish key in frontend

我正在开发一个聊天应用程序,在前端我使用的是 reactjs

对于 reactjs,我正在使用这个库:https://www.npmjs.com/package/pubnub-react

我看到这里,订阅和发布密钥暴露在前端,我的问题是,在前端添加这样的密钥安全吗?

这里是示例代码:

const pubnub = new PubNub({
  publishKey: 'myPublishKey',
  subscribeKey: 'mySubscribeKey',
  uuid: 'myUniqueUUID'
});

PubNub 访问管理器

引用 Stephen Blum(Pubnub 的创始人兼首席技术官)对重复问题的回答:

This is the same problem with Facebook. I can open your FB page and copy your auth_key from the network tab and gain access to your Facebook page. You must treat your PubNub auth_key the same as you would a secret intended only for the user. This is like a Session Key/ID that allows access to a data stream, similar to the way Netflix, Spotify, Facebook and Gmail provide a secure access layer.

总而言之,您无法隐藏 PN 密钥,但可以通过启用和实施 PubNub Access Manager 来保护它们。

阅读 docs from the link above,但这个问题之前在 Stack Overflow 上也已经回答过几次。那里的代码示例较旧,但概念相同:

  • Secure Pubnub subscriber key and channel name
  • how to hide pubnub keys when using JS

此外,始终将 pub/sub 密钥从您的服务器(连同授权密钥和 UUID)传回客户端应用程序,而不是将它们硬编码到客户端代码中。这允许您在需要时交换密钥。它很少见,但如果您需要,它会非常有用。