2016-04-05 8 views
-2

私はJavaデータベースにリモートで接続するJavaアプリケーションを開発中です。phpMyAdminとJava

しかし、私はホスト名、ユーザー名とパスワード、テーブル名などのデータベースに関するすべての情報をJavaに持っています。ユーザーはjarファイルをダウンロードしてシステムにログインする必要があります(すべてのボットソフトウェアと同じですが)。セキュリティリスクを恐れています。

すべてのjarファイルはデコンパイルでき、誰もがソースコードを見ることができます。彼らはデータベースに関するすべての情報を得るでしょう。これはセキュリティリスクですか、代わりに何をすべきですか?

メンバーと既に既存のデータベースにリモートで接続し、phpMyAdminで新しいテーブルを作成しても、登録されたメンバーをそのテーブルにコピーすることはできません。どうすればよいですか?

+0

遠すぎる質問.... – redFIVE

+0

とにかく、ログインはユーザとサーバによって制御されなければなりません。 .. –

+0

私たちは何か答えがありがとうと思います、ありがとうございました – swipeales

答えて

0

最初の部分では、起動時にアプリケーションが読み込む別のファイルにデータベースの資格情報が必要です。詳細はanswers to this stackoverflow questionを参照してください。 JVMの最適化を損なわない方法でコードを難読化することを検討する必要があります。 ProGuardを使用してコードを難読化してみてください。

既存のテーブルと新しいテーブルとの間でデータ転送を行う別個のスクリプトが必要です。

  1. 古いテーブルからの輸出のユーザーデータ
  2. インポートユーザーデータを新しいテーブルへ

phpMyAdminにはすべてその機能が内蔵されています。

EDIT:実稼働環境では、エンドユーザーのデータベースユーザー権限を制限します。彼らは 'DELETE'特権などを持っていないことを確認してください。

+0

デスクトップログインアプリケーションだけを使用したい場合は、ユーザーがログインするとファイルがあるcpanelになります。ユーザーはファイルをクリックして起動し、exeまたはサーバー上にあるJavaプログラムを起動します。だから、ユーザーはプログラムのコピーを得ることができません。それを行う最も簡単な方法は何でしょうか?いかなる情報も大歓迎です。 – swipeales

+0

その場合、dbログイン信用ファイルもサーバー上に存在し、実行時にそこから読み取る必要があります。 ユーザーがログインしたときにローカルファイルが一時的に作成される可能性があります(テキストが含まれています)。このファイルにテキストがあるかどうかをユーザーがログインするたびにチェックします。ユーザーがログアウトすると、そのユーザーを削除または空にして、次回ユーザーがアプリを起動したときにチェックすることができます。 – Dadani