加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:25:30 所属栏目:大数据 来源:网络整理
导读:最近我注意到在WireShark中我可以看到我用来连接我的FTP服务器上传文件的FTP用户名/密码(Delphi 6带有Indy 9或10,我相信).我想通过加密密码来防止这种情况,但我不知道从哪里开始. 你有什么建议阻止黑客获得凭据?请不要任何组件(甚至免费的)或任何花钱的东西
最近我注意到在WireShark中我可以看到我用来连接我的FTP服务器上传文件的FTP用户名/密码(Delphi 6带有Indy 9或10,我相信).我想通过加密密码来防止这种情况,但我不知道从哪里开始.

你有什么建议阻止黑客获得凭据?请不要任何组件(甚至免费的)或任何花钱的东西.

解决方法

在纯FTP协议中,您无法加密任何内容,因此凭据以纯文本形式传输,文件,列表等以未加密的方式传送到服务器或从服务器传送.

如果您的服务器支持FTPS,这是通过SSL加密连接的普通FTP会话,您可以使用您正在使用的相同TIdFTP对象,但将默认IO处理程序更改为支持SSL的处理程序,例如,实例TIdSSLIOHandlerSocketOpenSSL,使用流行的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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读