0

ここに2つの簡単なコードがあります:

サーバ:

package myserver;

import java.io.*;
import java.net.*;

class MyServer {

public static void main(String argv[]) throws Exception {
    String clientSentence;
    String capitalizedSentence;
    ServerSocket welcomeSocket = new ServerSocket(6789);
    while (true) {
        Socket connectionSocket = welcomeSocket.accept();
        BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
        DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
        clientSentence = inFromClient.readLine();
        System.out.println("Received: " + clientSentence);
        capitalizedSentence = clientSentence.toUpperCase() + '\n';
        outToClient.writeBytes(capitalizedSentence);
    }
    }
}

クライアント:

package myclient;

import java.lang.*;
import java.io.*;
import java.net.*;
import java.util.Scanner;

class MyClient {

public static void main(String argv[]) throws Exception {
    String sentence;
    String modifiedSentence;
    BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
    Socket clientSocket = new Socket("localhost", 6789);
    DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
    BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
    sentence = inFromUser.readLine();
    outToServer.writeBytes(sentence + '\n');
    modifiedSentence = inFromServer.readLine();
    System.out.println("FROM SERVER: " + modifiedSentence);
    clientSocket.close();
}
}

今....このサーバーを公開した場合、変更されたパッケージを送信してシステムに侵入することによるセキュリティ上のリスクはありますか? (サーバーはいくつかの Linux ディストリビューションを使用しています。) それとも単純な文字列しか送信できないのでしょうか?

4

2 に答える 2

0

改行のない大量のデータを Java プロセスに送信すると、誰かが Java プロセスをクラッシュさせる可能性があります。JVM に与えたメモリの量によっては、プログラムを実行しているサーバーに影響を与える可能性があります。

于 2013-10-20T23:24:32.360 に答える