2009-08-30 27 views
4

クライアントは自分のサイトから機密データを読み取ることができないようにしたいと考えています。実際には、これはデータベースへのアクセス権があることを意味しますが、特定のModel Fieldsの内容を読み取ることはできません。私にはアクセスできないデータを作成する方法はありますか?それでも、クライアントがブラウズするサーバーによって復号化されますか?暗号化されたDjangoモデルのフィールド

答えて

4

いいえ、データを復号化できない形式でも、復号化してクライアントに同時に表示することもできます。あなたができる最善の策は、コンテンツの可逆暗号化です。少なくとも、サーバーが侵害された場合、データが安全です。

+0

私はそれを恐れていました。私はちょうどいい気分のプライバシーポリシーを書くつもりです... – OwenK

0

あなたとあなたのクライアントは、それらが不明瞭であることに同意することができます。単純な排他的論理和演算やそれに類するものは、管理者が値を判読できないようにし、サイトで必要なときにデコードすることができます。

「偶然」何かを読んでいなくても、安全にサイトを管理できます。

実際の内容を取得することは技術的に可能であるが、積極的に努力する必要があることをクライアントが理解していることを確認してください。

5

を見てみましょう。 PHPでこれまでと同様のことをしましたが、Djangoアプリの考え方は同じです:

このウェブサイトのすべてのデータは、システムソフトウェアが保持する秘密鍵を使用して暗号化されて保存されています。データを解読する対応する公開鍵は、クライアントによってテキストファイルに保持されていました。

クライアントがデータにアクセスしたかったときに、公開鍵をデータのロックを解除した承認フォーム(セッションでキーを保持)に貼り付けました。

完了すると、彼らはセッションを認証解除しました。

これにより、Webアプリケーションへのアクセスが許可されていないため(弱いユーザー名/パスワードに対して安全です)、データベースレベルでの漏洩から情報を保護しました。

これはまだ完全に安全ではありません。マシンへのルートアクセス権がある場合は、アップロード時にキーを取得するか、セッション情報を調べることができます。そのためには、クライアントのマシン上で読み取りソフトウェアを実行し、APIを介してデータベースにアクセスすることができます。

これは古い質問ですが、私はそれが本当に可能であることを明確にすると思いました。

0

その他の考慮すべき点は、Webアプリケーションが暗号化されたフィールドを並べ替えたり簡単にクエリできないことです。クライアントが必要とする管理機能を知ることは役に立ちます。もう1つのアプローチは、重要なデータを表示しないであなたの管理機能だけを実行することを可能にする別個のアプリケーション/アクセスチャネルを持つことです。

関連する問題