2011-07-12 14 views
0

私は暗号化された情報を格納するためにSQL Server 2008を使用しています。暗号化されたデータを持つフィールドを持つ約5つのデータベーステーブルがあります。 暗号化は、Javaを使用してサーバー側で行われます。私の問題は、この暗号化された情報を表示/更新する必要もあることです。データベースから暗号化された情報を表示/更新するには、ユーザーがデータベースに存在する暗号化された情報を表示/更新できるようにするWebアプリケーションを作成しています。暗号化されたデータベースデータの表示

  1. ユーザーがWebアプリケーション でINSERTのSQLクエリを入力して、アプリケーションを持っていることができるようになります。たとえば

    は、ユーザーが暗号化されたフィールドを含むデータベースに新しいデータを挿入する必要があると言うことができますサーバーはクエリを解析します。

  2. 暗号化が必要なフィールドが見つかった場合、クリアテキスト値を に抽出し、Javaを使用して暗号化し、暗号化された値で クエリを変更する必要があります。

  3. データベースに対して変更されたINSERTクエリを実行します。

これで、SQLクエリを解析して変更する必要があります。私はちょうどこれを行う簡単な方法があるのだろうかと思っています。誰もこれを前にしたことがありますか?これを容易にするツールはありますか?

データベースはクライアントサイトにインストールされるため、知的財産権を保護するためにデータベースフィールドを暗号化する必要があります。クライアントはデータベースに完全にアクセスできるため、暗号化されたSQL Serverを使用するのは良い考えではありません。

感謝の意を表します。

+0

を照会解析でしょう、あなたは下のこのスレッドを見ることができると思いますか? –

+0

クライアントは、アプリケーションから生成されたデータのみを所有します。そのAIアプリケーションとその設定はデータベースに格納されます。クライアントまたは誰かがその設定にアクセスできる場合、リバースエンジニアリングが可能です。 – Marquinio

+1

私はもっと情報がなければ、簡単な解決策があるかどうかを判断するのが少し難しいと思います。なぜあなたのクライアントはSQLクエリを入力する必要がありますか? (これはそれ自体が "ここにドラゴンズ"と書かれています...)あなたが提示したものは、あなたが解決しなければならない実際の問題ではなく、好きではない実装*のようです。他の実装。おそらくあなたが実際にやるべきことは何ですか? –

答えて

2

私はここで、Webアプリケーションから直接SQL文の入力を使用しないことを助言する理由

  1. ありませんデータ検証(ユーザーのための列には、データ型のヘルプ)
  2. ユーザー・エラーの入力SQLタイプミスの(中唯一のJDBCで検証することができますそれはあなたがすべてとテーブル用の追加/編集フォームを必要とするフォームのルートを行く場合

を行うための最も安全な方法ではありません、

  • はもちろんのこと)を実行フォーム入力として列挙されます。上記のすべての問題を解決することができます。また、各列の横にチェックボックスを追加し、列の暗号化をより設定可能にすることもできます。

    それでもまっすぐSQLの理由を持っている場合、私は私があなただったら、私は、データベース内のデータを所有している私の自己

    SQL parser library for Java

  • 関連する問題