如何保护PHP文件的敏感信息?

时间:2014-03-10 13:45:50

标签: php linux

我有一个文件,其中包含加密密钥,数据库密码,基本上是敏感数据。

PHP处理器正在打开该文件,以获取所需信息。

出于安全原因,它也出自Web服务器目录的linux文件系统。

为了防止攻击者的眼睛,这个文件是否有任何方式可以直接访问安全或加密?

无论我尝试什么,如果攻击者获得SSH访问权限,他将能够直接访问它,或使用PHP处理器查看它。

2 个答案:

答案 0 :(得分:1)

我认为加密很有意义,因为您必须将密钥存储在与值相同的环境中。有多种方法可以从攻击媒介中读取文件。其他方面,这种方法是常见的做法,并且非常安全,只要您能保证php生态系统的安全性。

1。文件系统级别

确保你对文件的权限做了什么,这将是不安全感的主要来源。确保该文件由运行php的用户拥有。希望这是项目的一个特定用户,并且该文件将仅具有chmod 600的权限,仅适用于该用户。)

如果不是这样的话: 可以读取文件的所有内容(例如,在没有suphp的情况下在不安全的共享托管环境中)。此外,任何其他有权访问php的进程都可以访问该文件。如果有一个过时的wordpress安装 - 并且可以打开任何php注入,那么就可以读取该文件。 (还有其他配置选项会使这很困难)

2。服务器级别

服务器上是否有其他用户?如果是这样,服务器上运行的服务器是什么?他们能阅读文件吗?

3。 Php等级

您是否有任何可能被欺骗阅读文件并输出其内容的脚本?确保运行此文件的其他脚本/应用程序是最新且安全的。

另见:

答案 1 :(得分:0)

简短的回答是,如果PHP需要敏感数据,您将无法以任何有意义的方式对其进行加密。

加密/解密总是需要某种形式的人工交互才能完全安全(即使用私钥提供密码短语)。

您可以做的最好的事情是通过要求人工交互来解密访问来确保您的服务器受到保护(例如,仅允许基于OpenSSH密钥对的shell访问)。

您还可以引入几层混淆,以便在shell被泄露的情况下,入侵者仍然有工作要做。