2009-08-30 75 views
4

客户希望确保我无法从他们的网站读取敏感数据,这些数据仍将由我管理。实际上,这意味着我可以访问数据库,但是我无法阅读某些模型字段的内容。有没有办法让我的数据无法访问,但仍由服务器解密以供客户浏览?加密的Django模型字段

回答

4

不,不可能让数据既无法解密,也无法解密,并且可以同时显示给客户端。您可以做的最好的方式是对内容进行可逆加密,至少如果您的服务器的数据安全受到威胁。

+0

我很害怕这个。我想我只会写一个该死的好隐私政策...... – OwenK 2009-08-30 05:58:33

0

您和您的客户可能会同意他们被遮盖。一个简单的XOR操作或类似的操作会使这些值在管理员中不可读,并且他们可以在网站中及时解码。

通过这种方式,您可以安全地管理网站而不会“意外”阅读某些内容。

确保您的客户了解从技术上可以获得实际内容,但需要积极努力。

5

这是可能的公共密钥加密。我之前在PHP中做过类似的事情,但是对于Django应用程序的想法是一样的:

本网站上的所有数据均使用系统软件保存的私钥进行加密存储。解密数据的相应公钥由客户端保存在文本文件中。

当客户端想要访问他们的数据时,他们将公钥粘贴到授权表单中(在会话中持有密钥),以解锁数据。

完成后,他们取消了他们的会话授权。

这可以防止信息被授权访问Web应用程序(这样可以防止弱用户名/密码),也可以防止数据库级别的泄漏。

这仍然不完全安全:如果您具有对计算机的根访问权,您可以在密钥上载时捕获该密钥,或检查会话信息。为此,可以在客户机上运行读取软件并通过API访问数据库。

我意识到这是一个古老的问题,但我想我会澄清,这确实是可能的。

0

要考虑的其他一些问题是,Web应用程序将无法对加密字段进行排序或轻松查询。了解客户希望您拥有哪些管理功能会很有帮助。另一种方法是有一个单独的应用程序/访问通道,它不显示关键数据,但仍然允许您仅执行管理功能。