如何使用Indy连接到FTP时如何加密凭据



最近我在Wireshark中注意到,我可以看到我用于连接到FTP服务器的FTP用户名/密码上传文件(我相信Indy 9或10的Delphi 6,我相信)。我想通过加密密码来防止这一点,但我不确定从哪里开始。

您建议防止黑客获得凭据?请不要任何成分(甚至是免费的)或任何花钱的成分。

pure ftp协议中,您无需加密任何内容,因此凭据以纯文本和文件,列表等方式旅行,等等从服务器。

如果您的发电机支持FTP,这是SSL加密连接的普通 normal ftp会话,则可以使用您使用的相同的tidftp对象进行操作,但可以将默认的io处理程序更改为一个具有SSL的功能,例如,TIDSSLIOHANDLERSOCKETESLSL的实例,该实例使用流行的OpenSSL库进行加密。

在代码中看起来像:

var
  ftp: TIdFTP;
  ssl: TIdSSLIOHandlerSocketOpenSSL;
begin
  ftp := TIdFTP.Create();
  try
    ssl := TIdSSLIOHandlerSocketOpenSSL.Create(ftp);
    ftp.IOHandler := ssl;
    ftp.Host := 'ftp.myserver.com';
    ftp.Username := 'myuser';
    ftp.Password := 'mypass';
    ftp.Connect;
    DoWhateverYouWantToDoWithThe(ftp);
    AndUploadMoreFiles(ftp);
    ftp.Disconnect;
  finally
    ftp.Free;
  end;
end;

最新更新