加密的Django模型字段
一个客户希望确保我无法读取他们网站上的敏感数据,而这些数据仍然由我来管理。实际上,这意味着我可以访问数据库,但我不能查看某些模型字段的内容。有没有办法让这些数据对我不可见,但仍然可以被服务器解密,以便客户可以浏览?
6 个回答
2
看看这个链接:Django-fields
5
这可以通过公钥加密来实现。我之前在PHP中做过类似的事情,但在Django应用中也是同样的思路:
这个网站上的所有数据都是用系统软件持有的私钥加密存储的。对应的公钥则保存在客户端的一个文本文件里,用来解密数据。
当客户端想要访问他们的数据时,他们会把公钥粘贴到一个授权表单中(这个公钥会保存在会话中),这样就能解锁数据了。
完成后,他们会取消会话的授权。
这样做可以保护信息不被未授权的人访问这个网络应用(也就是说,即使用户名和密码很弱也没关系),同时也能防止数据库层面的泄露。
不过,这样还是不完全安全:如果你有机器的根权限,就可以在上传公钥时捕获到它,或者检查会话信息。为了解决这个问题,可以考虑在客户端的机器上运行读取软件,通过API访问数据库。
我知道这个问题有点老了,但我想澄清一下,这确实是可行的。
5
不,这种情况是不可能的。你不能同时让数据既处于一种无法解密的状态,又处于一种可以解密并展示给客户的状态。最好的办法是对内容进行可逆加密,这样即使你的服务器被黑客攻击,客户的数据也能得到保护。