2011-10-19 10 views
1

CouchDBを分散データベースとして使用するアプリケーションを作成したいと考えています。各ユーザはローカルのCouchDBレプリカで作業し、その方法でオフラインで作業することができます。 各ローカルレプリカはセントラルレプリカと同期しますが、これはマスターレプリカではなく、セントラルレプリカを使用する方が簡単です。セキュアCouchDBアーキテクチャ

ローカルデータベースとセントラルデータベースの両方を保護するにはどうすればよいですか?

私は、ユーザーがデータベースに読み書きする前にユーザー名とパスワードで認証する必要があることを意味します。

もちろん、ローカルのものは最終的にハッキングする可能性があり、最終的にハッキングされる可能性があるため、セントラル(またはリモート)データベースはより安全でなければならないため、 私はCouchDBをプロキシの背後に置くことを人々に勧めていますが、複製プロセスはどのようにしてユーザの代わりに認証できますか?

ありがとう、 Ido。

答えて

4

私はすべての点は、一般的なセキュリティ上の懸念に落ちるように私は、いくつかのスマートなソファー、具体的なアドバイスを与えることができると思いますが、ここではそれらされていない:手始めに

  • 、必ず通信間のことを確認ノードは暗号化されています。 CouchDBは1.1からネイティブにSSLをサポートしています。したがって、初期のバージョンでは、SSL(nginx、apacheのmod_proxy、ワニス)を処理するプロキシの背後に置かなければなりません。

  • ロールとユーザー権限を確認します。蜂が許可される必要がないすべてのものを許可しない。有効なユーザーなどが必要です...

  • 誰かが認証されても、彼を信頼できるとは限りません。すべてのデータをしっかりと検証することを確認してください - validate_doc_update関数を自由に使用してください。誰もが実際にアクセスできるデータにアクセスしていることを確認してください。ここでも認証は承認を意味するものではありません。

+0

FYIバージョン1.1以降CouchDBにはネイティブSSLがサポートされています。 – ahmedyha

+0

それは知っていいです:) – Slartibartfast