java - 如果我使用Java套接字/netty,其他人可以冒充我的服务器,反之亦然吗?

标签 java sockets netty

我正在使用 netty 来完成我的一个简单项目,我需要将消息从客户端发送到服务器以及从服务器发送到客户端。

在客户端和服务器之间建立连接后,第三方是否可以将数据发送到同一客户端端口,就像消息来 self 的服务器一样?有人可以通过将数据发送到我服务器上的特定端口来假装是之前连接的客户端吗?或者“连接”是否意味着服务器和客户端将知道数据来自其发起连接的实体?

如果重要的话,我在 netty 中使用 NioSocketChannel

详细来说,我还没有使用加密 channel (SSL/TLS)。我只是想知道我正在与发起连接的同一实体进行对话。我不需要知道它与我上次发起连接的实体相同(我猜可以通过用户名/密码来实现)。

最佳答案

在网络级别,您将使用不安全的 TCP/IP 流,该流可能会被拦截、欺骗等。如果您想要端到端安全性,并确保您的客户端正在与真实服务器通信(反之亦然),您需要使用 SSL,或(更好)TLSv1 或 TLSv2。 p>

引用文献:

关于java - 如果我使用Java套接字/netty,其他人可以冒充我的服务器,反之亦然吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38760800/

相关文章:

ios - 编写流时遇到麻烦

java - 使用 Netty 的单向 SSL 身份验证

java - Spring Boot - 如何在 Spring RestController 的 map 中获取所有请求参数?

java - 为什么 Hibernate 执行 JNDI 查找?

java - 具有单个目标网络的Linux多网关

netty - 从 NettyRequest 获取 URL 中指定的用户名

ssl - 使用 ssl 在 prodmode 中启动 playframework netty

java - 如何从 netbeans 将 int 值添加到 sql 列

java - 从 Servlet 下载 Excel

java - Android:如何在所有 Activity 中与服务器建立公共(public)套接字连接