使用的PHP AES加密时,应该在哪里一个存储密钥?
题
我在执行AES-256位encrpytion在我的web应用程序:
HTTP://www.utoxin。名称/ 2009/07 /自动-DB-字段加密功能于cakephp中/
步骤之一表示存储在一个自举文件中使用的加密算法和密钥。但什么是停止从扫描文件系统与PS或东西和解密数据的人吗?
什么是保护数据的最佳方式?
解决方案
如果有人访问所有文件服务器的硬盘上,全盘皆输。有没有办法可以保护您的数据的话,因为你的web应用仍然需要能够访问它。
这个加密只会保护你从谁可以访问数据库的攻击,但没有文件系统,例如通过SQL注入。即使在这种情况下,他们可以读取数据:根据具体的泄漏,web应用程序可能会高兴地将其解密为他们
其他提示
(我知道这是一个古老的问题,但作为链接的博客文章的作者,我想添加一些评论)
什么公认的答案说是正确的。一旦你的文件系统被破坏就没有保障。而且,是的,如果写得不好,可以在一个未加密的形式公开数据。该工具是为了简单地提供一个方法,使之更容易处理的数据加密在数据库中。如果你不喜欢自动解密功能,这将是微不足道的,以消除该问题的一个afterFind()回调,使其不再触发,以及任意数量的,可以提高安全性等进行调整(在成本方便)。
我希望这可以帮助别人谁碰到这个岗位绊倒。有人做过,因为我只是有一对夫妇的点击来自这个问题我的博客。 :)
在UNIX系统中,你可以将它保存到一个文件中,用户帐户为Apache创建,与0600 permisions。这可以通过根来访问,因此,如果盒子是安全的,没有窗户problem.On箱,我不知道。
不隶属于 StackOverflow