2009-08-30 74 views
4

客戶希望確保我無法從他們的網站讀取敏感數據,這些數據仍將由我管理。實際上,這意味着我可以訪問數據庫,但是我無法閱讀某些模型字段的內容。有沒有辦法讓我的數據無法訪問,但仍由服務器解密以供客戶瀏覽?加密的Django模型字段

回答

4

不,不可能讓數據既無法解密,也無法解密,並且可以同時顯示給客戶端。您可以做的最好的方式是對內容進行可逆加密,至少如果您的服務器的數據安全受到威脅。

+0

我很害怕這個。我想我只會寫一個該死的好隱私政策...... – OwenK 2009-08-30 05:58:33

0

您和您的客戶可能會同意他們被遮蓋。一個簡單的XOR操作或類似的操作會使這些值在管理員中不可讀,並且他們可以在網站中及時解碼。

通過這種方式,您可以安全地管理網站而不會「意外」閱讀某些內容。

確保您的客戶瞭解從技術上可以獲得實際內容,但需要積極努力。

5

這是可能的公共密鑰加密。我之前在PHP中做過類似的事情,但是對於Django應用程序的想法是一樣的:

本網站上的所有數據均使用系統軟件保存的私鑰進行加密存儲。解密數據的相應公鑰由客戶端保存在文本文件中。

當客戶端想要訪問他們的數據時,他們將公鑰粘貼到授權表單中(在會話中持有密鑰),以解鎖數據。

完成後,他們取消了他們的會話授權。

這可以防止信息被授權訪問Web應用程序(這樣可以防止弱用戶名/密碼),也可以防止數據庫級別的泄漏。

這仍然不完全安全:如果您具有對計算機的根訪問權,您可以在密鑰上載時捕獲該密鑰,或檢查會話信息。爲此,可以在客戶機上運行讀取軟件並通過API訪問數據庫。

我意識到這是一個古老的問題,但我想我會澄清,這確實是可能的。

0

要考慮的其他一些問題是,Web應用程序將無法對加密字段進行排序或輕鬆查詢。瞭解客戶希望您擁有哪些管理功能會很有幫助。另一種方法是有一個單獨的應用程序/訪問通道,它不顯示關鍵數據,但仍然允許您僅執行管理功能。