我正在计划一个需要用户信任的网站。为了帮助建立信任,我考虑发布源代码、数据库模式,甚至允许用户下载原始数据(这样他们就可以对数据运行自己的查询,以验证站点给出的答案是否正确)。
在什么情况下会有安全风险?我的想法是,大多数数据无论如何都可以用网络蜘蛛从网站上擦掉。
对于敏感信息,如IP地址和密码,我计划用散列(salt)存储。年龄信息不相关,也许我只会储存“成人是/否”。我有什么遗漏吗?
最佳答案
如果数据访问正确,注入就不是问题。你不必担心你的模型是否是专有的,所以没有问题。你开绿灯让模型曝光。
如果你告诉用户数据是公开的,隐私就不是问题。人们在facebook上公开私人信息和照片,为什么你的系统不公开呢?绿灯。
理论上,使用随机盐的散列数据是可以安全下载的。随机散列的sha512可能永远不会被破坏。但谁知道呢?以前md5是散列的“正确方法”,现在您可以在1小时内找到冲突。
唯一的问题是需要加密的私有数据,而不是散列数据。你不能散列一个IP,因为你想在将来某个时候使用实际的IP。你不能散列信用卡号码,因为你在某个时刻需要真实的信用卡号码。您将被迫使用私钥并处理私钥的弱点。通过公开数据,可以完全消除物理安全层。加密+物理比单独加密要好。
关于database - 什么时候发布数据库结构会有安全风险?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5165704/