1

現在、大学の課題でプログラムを書いています。JDBC を使用して MySQL データベースに接続する必要があります。

プログラムがデータベースにアクセスするためには、データベースのパスワードを何らかの形で公開する必要があることを考えると、そもそもパスワードをハッカーに渡したほうがよいでしょうか?

私は正しいですか、それとも何か不足していますか?

4

3 に答える 3

1

JDBC 接続のセキュリティが心配な場合は、暗号化してください。 http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-using-ssl.html

パフォーマンスが低下しますが、これはプレーン テキストに代わるものです。MySQLのドキュメントによると:

SSL を有効にすることによるパフォーマンスの低下は、クエリのサイズと返されるデータの量に応じて、クエリの処理時間が 35% から 50% 増加することです。

このオプションは、ほとんどの SQL および noSQL データベースで使用できます。

于 2012-06-08T02:13:44.810 に答える
0

パスワードはアプリケーションに公開する必要があります。それは確かです。それ以外の場合、アプリケーションはどのように DB に接続しますか?

しかし、これは大きなセキュリティ上の欠陥ではありません。アプリケーションが実行されるマシンは、何としてでも安全でなければなりません。これがメインです!ハッカーや単純なユーザーでさえ、アプリケーションが実行されているマシンにアクセスできる場合、十分な権限があれば、何も知らなくてもシステムに大混乱をもたらす可能性があります。ひとたびアプリケーションのソース コードとそれが実行されているマシンにアクセスできるようになると、非常に優れたユーザー アカウント管理システムを使用しない限り、セキュリティを確保する方法はありません。

パスワードをテキストファイルに外部化し、ハッシュ化して保存することができます。おそらく、ソルトを使用することもできます。これは、基本的に私が知っている最善/最も使用されている方法です...より難しい...ソースコードにアクセスできるので、賢い場合はデータベースに侵入することができます。そうでない場合は、単にデータベースを削除または破損することができます。

したがって、JDBC には何の問題もありません。同意しない場合は、何百万人もの JDBC ユーザーを説得してください。セキュリティは、単一のテクノロジの上に構築するものではありません。これには、すべてのシステムを保護し、異なるノードごとに層ごとに保護層を追加する必要がありますが、保護層ごとに使いやすさと柔軟性がますます損なわれることに注意してください (これが、1000 層のパスワードを単純に上に追加しない理由です)アプリケーション/データベースの場合、それは非現実的であり、ほとんど不要です.

于 2012-06-08T02:11:43.410 に答える
0

JDBCは、Java アプリケーションがデータベース システムに接続するために使用する標準 API です。これは非常に成熟しており、堅固であり、Java コミュニティで広く使用されています。

ただし、一部のアプリケーションは、ソース コードでデータベース接続資格情報などを公開することにより、API を不適切に使用します。

MySQL のユーザー名とパスワードを逆コンパイルから保護するにはどうすればよいですか? この設計上の問題の説明と、それを解決するためのいくつかの提案があります。アプリケーションの外部のファイルにデータベース資格情報を保存し、多層アーキテクチャを採用するなどです。

于 2012-06-08T02:44:25.860 に答える