2011-10-19 48 views
1

我想創建一個使用CouchDB作爲分佈式數據庫的應用程序。每個用戶將使用本地CouchDB副本,並且這種方式將能夠脫機工作。 每個本地副本都將與中央副本同步,這不是主副本,現在只需使用中央副本即可。安全CouchDB架構

鑑於此設計,我如何保護本地和中央數據庫?

通過安全我的意思是用戶必須在允許讀取或寫入數據庫之前使用用戶名和密碼進行身份驗證。

當然,更重要的方面是確保中央數據庫安全,因爲任何本地最終都會被黑客入侵,但中央(或遠程)數據庫應該更安全。 我讀過人們建議將CouchDB放在代理後面,但複製過程如何代表用戶進行身份驗證?

謝謝, 伊多。

回答

4

我不認爲我可以給一些特定的智能沙發,諮詢,所有的點,一般的安全關切下降,但這裏有他們:

  • 對於初學者來說,確保之間的通信節點被加密。 CouchDB自1.1開始支持SSL,因此對於較早的版本,您必須將其放在一些代理中,以處理SSL(nginx,apache的mod_proxy,varnish)或限制VPN的訪問。

  • 檢查角色和用戶權限。禁止所有不需要被允許的東西。要求有效的用戶等...

  • 請確保如果某人被認證,這並不意味着您可以信任他。確保您嚴格驗證所有數據 - 使用validate_doc_update函數。檢查每個人都在訪問他們真正有權訪問的數據。再次認證並不意味着授權。

+0

從版本1.1開始的FYI CouchDB具有本機SSL支持。 – ahmedyha

+0

很高興知道:) – Slartibartfast