1

ユーザー認証のために MySql データベースに直接接続する Swing アプリケーションがあります。

  • アプリケーションのビット コードは、インターネットでダウンロードできます。
  • 接続情報は静的変数にあります

認証を処理するようにサーバーをプログラムする必要があることはわかっていますが、最初の要件では認証のユースケースについて言及されていませんでした

私の質問は次のとおりです。アプリケーションの難読化は、接続情報をエンコードするのに十分ですか?

4

3 に答える 3

1

いいえ、ほとんどの人はバイト コードをリバース エンジニアリングまたは逆コンパイルして、変数を確認できます。自分で試してみて、上級ユーザーから何も隠していないことがわかります。

この場合、あなたが言ったように、認証を処理するためにクライアントとデータベースの間にサービスが必要です。

サービスには、データベースへのアクセスを許可/禁止するユーザー アカウントがあります。

編集:

この逆コンパイラを使ってみて、うまくいかないことを自分で確かめてください。

于 2012-06-20T16:22:00.157 に答える
1

あなたは、あいまいさによるセキュリティについて彼らが何を言っているのか知っています! (ヒント: セキュリティではありません)。

それを暗号化します (ただし、サーバー側のコンポーネントがないように見えるため、これを行うための実行可能な方法がわかりません)。または、あなたが言ったように認証サーバー側を行います。

于 2012-06-20T16:23:28.673 に答える
0

私は手早く汚いことをしたいと思っていましたが、最終的には、正しいことをするのにもそれほど時間はかからないことに気づきました。私がやったことは、サーバー側でDAOを公開するファサード、サーバーとJavaソケットを介して通信するクライアントオブジェクトを持つことです。

次に、クライアントから DAO を直接呼び出す代わりに、メソッドの名前を String として渡して、サーバー上のメソッドを呼び出します。そして、リフレクションの助けを借りて、ファサードは DAO で適切なメソッドを呼び出します。

文字列をエンコードしてセキュリティ トークンを追加する必要があると思います。

    -
于 2012-07-06T01:08:33.440 に答える