localhost连接的安全性

时间:2013-06-09 07:06:46

标签: php mysql security encryption

我意识到这似乎是一个奇怪的问题(我为问及几乎可以回答的问题而道歉)但是我在阅读其他问题的答案后感到担忧:

我有一个php脚本,它将数据存储在localhost MYSQL数据库中。其中一些信息是敏感的,并使用MYSQL AES加密功能进行加密。

我读到MYSQL不会加密其连接中的数据。最近两个涉及localhost连接的回复中提到了这一点,因此我担心。

我一直认为,当数据在同一台计算机内部传递时,拦截的风险为零。那不是这样吗?我应该在存储数据之前在PHP中进行加密吗?

我正在使用mysqli _ *

通过SSL连接服务器。

我目前使用共享虚拟服务器,但一旦开发完成,我计划转移到专用机器。

请专家请让我放心,或告诉我应该怎么做。

1 个答案:

答案 0 :(得分:2)

正如您所猜测的那样,将SSL用于本地连接是没有意义的。 SSL的主要目的是加密通道,以防止类似中间人的攻击。但是在局部连接的情况下,中间不可能有人。在您的设置中,我建议通过local socket建立连接,并完全绕过TCP层。

现在回到问题。

  

我应该在存储数据之前在PHP中进行加密吗?

不,如果数据库与执行脚本的数据库在同一台机器上。

不,如果数据库是远程的,并且链接是可信的(要么您信任链接本身,要么链接是安全的,例如使用SSL)。

是的,在所有其他情况下。

在后一种情况下(对远程数据库的不可信链接),AES_ENCRYPT()不适用。加密/解密过程由MySQL完成。数据在PHP和MySQL之间转换为未加密的。此外,由于必须将加密密钥传递给MySQL的AES_ENCRYPT()AES_DECRYPT(),因此该密钥通常将与其他SQL查询一起以未加密的方式发送。