2013-10-17 3 views
1

저는 stackoverflow 및 perl IO :: 소켓 소켓 프로그래밍의 초보자입니다. 프로젝트에 문제가 있습니다. 클라이언트가 서버로 파일을 보낼 수있는 TCP 클라이언트 및 서버 스크립트가 있습니다. 서버 측은 수신 된 파일을 저장하는 디렉토리를 만듭니다. 디렉토리 안에 파일을 표시 할 수 있습니다. 또한 파일 (txt)을 읽거나 파일을 삭제할 수 있습니다.소켓을 사용하여 perl 클라이언트 - 서버 파일 보내기

문제는 클라이언트 측 ... 서버가 클라이언트로 파일을 보낼 수 있습니까? 그리고 클라이언트가 서버에서 파일을 삭제할 수도 있습니까?

미리 감사드립니다.

답변

1

음, 그렇습니다.

TCP 클라이언트와 서버를 만드는 방법에 대해 이야기 할 때는 2-wire 구리 전화선과 같은 두 가지 파이프를 사용해야합니다. 상상할 수 있듯이 전화로 많은 것을 전송할 수 있으며이를 통해 파일 전송 프로토콜을 구현할 수도 있습니다. 그러나 실제로이 프로토콜을 구현하는 데 도움을 줄 아무도 없습니다. FTP, HTTP, SMB, NFS, SCP/SSH와 같은 프로토콜을 보면 매우 복잡 할 수 있습니다. 이 모든 프로토콜은 TCP를 통해 대화하고 파일을 보낼 수 있습니다. 그러나 그들은 매우 단순하지 않습니다.

즉, 파일을 전송하는 데 필요한 매우 간단한 하위 기능을 구현할 수는 있지만 매우 단순합니다. 프로젝트가 순전히 이론적 인 것이 아니라면, 기존의 파일 전송 프로토콜 대신 또는 새로운 서비스를 사용하는 것이 더 쉽습니다.

또한 파일을 삭제할 때 가장 먼저 고려해야 할 사항은 보안입니다. 다른 쪽에서 파일을 삭제하라는 메시지가 나타나면 어떻게 합법적 인 연결이라고 믿을 수 있습니까? 누군가가 서비스를 악용하여 악의적으로 중요한 파일을 제거하려고하거나 /etc/passwd 또는 /etc/shadow을 삭제하여 서버를 해킹하려고하면 어떻게 될까요? 즉, 매우 복잡하고 깨지기 쉬운 주제이며, 첫 번째 규칙은 절대 전화를 통해 낯선 사람과 이야기하는 것처럼 상대방에 대해 절대 신뢰하거나 추측하지 않는 것입니다.

관련 문제