所以我使用mcrypt加密数据,将其存储在数据库中并对其进行解密.
我想知道在public_html目录之外的PHP文件中存储加密密钥是否安全?
我想知道在public_html目录之外的PHP文件中存储加密密钥是否安全?
将其存储在文件中的原因是它需要用于多个加密,以便多个用户可以解密某些数据,并且我认为将其存储在文件中比在数据库表中更安全,就在加密旁边数据.
什么是潜在的安全风险?是否有可能让黑客获得对此文件的访问权限,从而获得密钥?
如果您的服务器(在其操作系统中)受到威胁,则无论您的密钥是存储在文件还是数据库中,都会“游戏结束”.所以,是的,“黑客有可能获得对这个文件的访问权限,从而获得访问权限” – 通过打入服务器的操作系统.
如果apache或PHP被破坏,而不是操作系统,你最终会遇到鸡蛋和鸡蛋的问题:如果你把密钥放在哪里,apache / PHP可以访问它,那么任何人都可以使用apache / PHP .如果没有,则无法在您的webapp中使用它.
这只留下了一个场景,你的webapp被破坏了,而不是周围的基础架构 – 在这种情况下,一个文件可能确实是一个好主意:许多入侵(例如大多数sql注入变量)获得对DB的访问权限,但不是文件系统.
对于敏感环境,我们有时选择一种模型,其中加密/解密通过一对FIFO处理,真正的加密由外部进程完成 – 这可以做一些启发式方法并拒绝对可疑模式进行解密.