简单的Java套接字安全注意事

时间:2013-11-05 19:11:02

标签: java sockets

我有一个简单的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背景,我想确保不会发生缓冲区溢出或者是否还有其他内容。

我认识到这可能是一个愚蠢的问题,但是我找不到任何有关它的信息。

1 个答案:

答案 0 :(得分:0)

不,什么都不会发生。 JVM是一个沙箱,它会阻止基于套接字的类修改任何关键的东西,除非你自己从代码中调用它。在最坏的情况下,JVM进程将关闭。

PS。可能在JVM中可能存在一些安全漏洞,但您无法保护自己免受这些漏洞的影响,如果找到这些漏洞,则会立即对JVM进行新的更新。