0

我有一个文件传输小程序,我目前正在创建一个日志系统,所以在它初始化的小程序中,直到它发送文件并完成将开始打印一个日志文件(最初它进入客户端的 java 控制台)但现在我正在修改它,所以它会转到服务器(在服务器中创建一个文件并开始在文件上写入)。

它现在可以工作,我正在使用端口 5000,但我需要为端口 5000 打开防火墙,因为打开端口很危险,我可以只使用端口 80 或 443 (HTTPS),因为它仍然打开用于文件传输吗?怎么做?

目前的代码示例是

在java小程序中会有

handler = new SocketHandler("xxx.xxx.xxx.xx", 5000);
//on different area of the file there will be something like
log("starting the applet");
log("sending email");
...

在服务器上,我创建了一个像这样的简单 java 服务器

public class ThreadedEchoServer {
    // using port 5000 
    static final int PORT = 5000;

    public static void main(String args[]) {
        ServerSocket serverSocket = null;
        Socket socket = null;

        try {
            serverSocket = new ServerSocket(PORT);
        } catch (IOException e) {
            e.printStackTrace();

        }
        while (true) {
            try {
                socket = serverSocket.accept();
            } catch (IOException e) {
                System.out.println("I/O error: " + e);
            }

            // new thread for a client
            new EchoThread(socket).start();
        }
    }
}
4

3 回答 3

1

你真的不应该考虑使用端口 80 和 443 - 这些是接收连接的端口。在其中一个端口上建立连接后,请求实际上被重定向到另一个端口进行处理。因此,使用它们写入将阻止任何传入的通信。

于 2012-05-02T19:04:41.113 回答
1

它现在可以工作了,我正在使用端口 5000,但是我需要为端口 5000 打开防火墙,因为打开端口很危险,我可以只使用端口 80 或 443(HTTPS)吗?怎么做?

打开5000端口并不比打开80或443端口更危险。(更改端口并不比修改数字更难,并且没有更多的效果)。

于 2012-05-02T19:04:50.993 回答
0

如果您的服务器正在运行其他重要的应用程序,我会使用 5000 端口并配置一个 chrooted 环境。

您可以查看此线程:防御路径遍历攻击的最佳方法是什么?

于 2012-05-02T19:20:27.643 回答