我有一个简单的Java服务器程序,我想知道这个简单的代码是否可以在不安全的网络上运行。
这是一些修改过的代码,它会侦听端口,并根据请求发送或获取消息。
try (
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream()));
) {
String inputLine;
String[] details = {"", "", ""};
for (int index = 0; index < 3; index++) {
if ((inputLine = in.readLine()) == null) break;
details[index] = inputLine;
}
if (details[0] == 'send_message') {
sendMessage();
}
else {
getMessage();
}
} catch (IOException e) {
debugPrint(e.getMessage());
}
我问这是因为我来自C背景,我想确保不会发生缓冲区溢出或者是否还有其他内容。
我认识到这可能是一个愚蠢的问题,但是我找不到任何有关它的信息。
答案 0 :(得分:0)
不,什么都不会发生。 JVM是一个沙箱,它会阻止基于套接字的类修改任何关键的东西,除非你自己从代码中调用它。在最坏的情况下,JVM进程将关闭。
PS。可能在JVM中可能存在一些安全漏洞,但您无法保护自己免受这些漏洞的影响,如果找到这些漏洞,则会立即对JVM进行新的更新。