3

セットアップしたデータベースのフロントエンドで作業していますが、誰かがスニッフィングしている場合、このコードを使用するだけでパスワードとユーザー名がプレーンテキストで表示されるのではないかと考えていました。

String url = "jdbc:mysql://" + address + "/table";
String user = user_Name;
String password = complete_Password;

Connection conn = null;
try {
    conn = DriverManager.getConnection(url, user, password);
    return conn;
} catch (SQLException ex) {
    System.out.println(ex);
}
4

2 に答える 2

4

これは、JDBC ドライバーの実装方法によって異なります。MySQL JDBC ドライバーはパスワードをクリア テキストで送信しません。これはMysqlIOクラスで発生していることがわかります(メソッドを探してくださいchangeUser)。

また、MySQL が提供するさまざまなタイプの認証 (非常に危険なクリア テキストのネットワーク上のパスワードを含む) については、クライアント サーバー プロトコルのドキュメント で確認できます。

ベンダーが作成したデータベース ドライバーが、パスワード データをクリア テキストとしてネットワーク経由で送信することを真剣に疑っています。少なくとも、MySQL および PosgreSQL JDBC ドライバーがこれを行わないことはわかっています。たとえば、PostgreSQL はパスワードのハッシュを生成して送信します。

于 2012-09-17T04:11:17.080 に答える
1

JDBC は単なる API です。JDBC ドライバーの実装はすべて異なるため、使用している特定のドライバーによって異なります。

于 2012-09-17T04:02:01.030 に答える