문제
보안을 위해 기존 FTP에서 벗어나야 합니다(비밀번호를 암호화되지 않은 상태로 전송함).SSH가 확실한 대안으로 선전되는 것을 들었습니다.그러나 저는 웹 사이트 개발을 자동화하기 위해 ASP.NET 프로그램 인터페이스에서 FTP를 구동해 왔으며 이제는 웹 기반 프로세스가 상당히 많이 이루어졌습니다.
ASP.NET에서 구동할 수 있는 프로그램 인터페이스가 있는 파일을 안전하게 전송하는 방법을 추천할 수 있는 사람이 있습니까?
해결책
질문에는 세 가지 하위 질문이 있습니다.
1) 보안 전송 프로토콜 선택
이전 FTP의 보안 버전이 존재합니다. 이를 FTP/SSL(SSL 암호화 채널을 통한 일반 이전 FTP)이라고 합니다.기존 배포 인프라를 계속 사용할 수도 있습니다. FTPS 또는 FTP/SSL을 지원하는지 확인하세요.
FTP, FTP/SSL 및 SFTP 차이점에 대한 자세한 내용은 다음에서 확인할 수 있습니다. http://www.rebex.net/secure-ftp.net/ 페이지.
2) Windows용 SFTP 또는 FTP/SSL 서버
SFTP 또는 FTPS를 사용할지 선택할 때 적절한 서버를 배포해야 합니다.FTP/SSL의 경우 Gene6(http://www.g6ftpserver.com/) 여러 서버에서 문제 없이 작동합니다.FTP/SSL Windows 서버가 많이 있으므로 원하는 것을 사용하십시오.Windows용 SFTP 서버의 경우 상황이 좀 더 복잡합니다. 작동하는 구현이 몇 개밖에 없습니다.Bitvise WinHTTPD는 매우 유망해 보입니다(http://www.bitvise.com/winsshd).
3) ASP.NET용 인터넷 파일 전송 구성 요소
솔루션의 마지막 부분은 asp.net에서 안전한 파일 전송입니다.시중에는 여러 가지 구성 요소가 있습니다.나는 추천할 것이다 Rebex 파일 전송 팩 - FTP(및 FTP/SSL)와 SFTP(SSH 파일 전송)를 모두 지원합니다.
다음 코드는 SFTP를 통해 서버에 파일을 업로드하는 방법을 보여줍니다.코드는 당사에서 가져왔습니다. Rebex SFTP 튜토리얼 페이지.
// create client, connect and log in
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);
// upload the 'test.zip' file to the current directory at the server
client.PutFile(@"c:\data\test.zip", "test.zip");
// upload the 'index.html' file to the specified directory at the server
client.PutFile(@"c:\data\index.html", "/wwwroot/index.html");
// download the 'test.zip' file from the current directory at the server
client.GetFile("test.zip", @"c:\data\test.zip");
// download the 'index.html' file from the specified directory at the server
client.GetFile("/wwwroot/index.html", @"c:\data\index.html");
// upload a text using a MemoryStream
string message = "Hello from Rebex SFTP for .NET!";
byte[] data = System.Text.Encoding.Default.GetBytes(message);
System.IO.MemoryStream ms = new System.IO.MemoryStream(data);
client.PutFile(ms, "message.txt");
남자 이름
다른 팁
샤프쉬 scp를 통해 파일 전송을 구현합니다.
우리는 다음의 변형을 사용했습니다. 이 솔루션 과거에는 .NET용 SSH Factory를 사용했습니다.
안녕하세요,
당신은보고 싶을 수도 있습니다 프로FPD.
크게 사용자 정의할 수 있습니다.Apache 모듈 구조를 기반으로 합니다.
웹사이트에서:
ProFTPD는 안전하고 구성 가능한 FTP 서버를 갖고자 하는 열망과 Apache 웹 서버에 대한 상당한 존경심에서 성장했습니다.
우리는 웹 콘텐츠의 대규모 전송에 적합한 버전을 사용합니다.일반적으로 하루에 300,000개의 업데이트가 이루어집니다.
HTH
건배,
롭