我可以使用 TLS 加密 Node.js TCP 流量以使其无法读取吗?

Can I encrypt Node.js TCP traffic with TLS so it's impossible to read?

所以我目前有一个 node.js 应用程序可以从文件中读取我的网站用户 ips 并使用 geoip 在地图上为每个访问者位置放置一个点。

问题是,每次有新访客到来时,如果客户端使用 wireshark 或 fiddler 检查流量,则客户端可以看到通过 websocket 发送的消息。

显然显示用户 ips 是不可能的,所以我想知道使用 TLS 是否足以使此信息不可读或无法从 javascript 代码中调试。

谢谢

这将使嗅探传输中的数据或多或少变得不可能。

它不会阻止人们使用您的 JS 并稍微调整它以在浏览器收到数据后记录数据。

您无法向控制浏览器的人隐藏发送到浏览器的数据。

信息被发送到用户的浏览器。浏览器 必须 能够解码它才能使用它。浏览器还顺便提供了调试工具,允许用户检查正在发生的一切。因此,用户可以检查浏览器可以检查的任何东西。 不,你想要的是不可能的。如果信息是机密的,请不要首先将其发送给任何客户。

TLS 有助于防止第 3 方攻击者窃取流量。如果普通用户可以访问敏感信息,那么 TLS 就一文不值。它被称为传输层安全是有充分理由的。

最大的问题是为什么要将 IP 和位置发送到浏览器?要在地图上放置标记,您只需要位置。

如果您需要在客户端通过 IP 地址区分用户,您可以编写自己的哈希算法,将 ip 与预定义的字符串(秘密)连接起来。所以对于同一个IP,identifier总是相同的,但是IP没有相应的secret是不可重构的。