最近我在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;