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)传回客户端应用程序,而不是将它们硬编码到客户端代码中。这允许您在需要时交换密钥。它很少见,但如果您需要,它会非常有用。
我正在开发一个聊天应用程序,在前端我使用的是 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)传回客户端应用程序,而不是将它们硬编码到客户端代码中。这允许您在需要时交换密钥。它很少见,但如果您需要,它会非常有用。