4

最近、WireSharkで、ファイルをアップロードするためにFTPサーバーに接続するために使用したFTPユーザー名/パスワードを確認できました(Delphi 6とIndy9または10、私は信じています)。パスワードを暗号化してそれを防ぎたいのですが、どこから始めればいいのかわかりません。

ハッカーが資格情報を取得するのを防ぐために何を提案しますか?コンポーネント(無料のものでも)やお金がかかるものは使用しないでください。

4

1 に答える 1

6

純粋なFTPプロトコルでは、何も暗号化する手段がないため、資格情報はプレーンテキストとして移動し、ファイル、リストなどは暗号化されずにサーバーとの間で移動します。

サーバーがFTPSをサポートしている場合、これはSSL暗号化接続を介した通常のFTPセッションですが、使用しているのと同じTIdFTPオブジェクトを使用して実行できますが、デフォルトのIOハンドラーをSSL対応のオブジェクト(インスタンスなど)に変更します。人気のあるOpenSSLライブラリを使用して暗号化を行うTIdSSLIOHandlerSocketOpenSSLの

コードでは、次のようになります。

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;
于 2012-12-18T23:46:20.150 に答える