HTTPS和加密数据库在共享主机中真的安全吗?

时间:2009-08-31 13:48:25

标签: php mysql encryption ssl https

我通过SSL阅读HTTP上的所有帖子。到目前为止,我知道如何在Web表单中安全地获取数据。但我错过了恢复的部分,并以同样的方式保存数据。 我需要在我的网站上提供一份表格,以便从客户处收集合理的数据(也可能是预订时使用的信用卡号码,但不需要信用卡授权程序),然后以安全的方式保存和读取数据。

然后,对于我需要的基本安全Web应用程序:

a)具有SSL域验证(DV)证书的网站(我没有固定的IP地址。我使用基本的共享或“虚拟”托管服务)。

b)开发一个简单的PHP& MySQL应用程序,收集客户的敏感数据,将所有应用程序PHP文件放在SSL安全文件夹中。

c)所有收集的数据都将存储在服务器MySQL数据库中。

这是我留言的问题部分:

1)如果我稍后使用phpmyadmin进入以查看常规主机服务(HTTP)上的数据库,这不是不安全吗?

2)托管管理员怎么样?如果我在数据库中使用纯文本,他们也可以读取所有敏感数据。但是服务器上数据的加密方法(不仅仅是通过SSL传输)就足够了吗?加密编码/解码方法是否可能被托管管理员拦截? (考虑一下:该方法位于同一服务器中的应用程序内)。 我无法支付自己服务器的便利性和安全性。

3)考虑到这些事情,并假设它们是真的......如果我进行数据库加密真的很重要吗?

可能是我错过了什么或者我误解了一些问题。

非常感谢您的帮助和耐心。

6 个答案:

答案 0 :(得分:5)

这些共享托管计划并非真正完全可以收集信用卡号码 - 您使用支付网关进行投注而不是自己存储。

请参阅有关此问题的一些规定:PCI

答案 1 :(得分:3)

  1. 是。 HTTP是不安全的。
  2. 是的,数据库中的纯文本是不安全的。加密稍微“安全” - 它会阻止随便翻阅的人 - 但任何有权访问服务器的人也可以访问加密/解密的脚本。
  3. 我会说是的。在您的情况下加密不会对专门的攻击者做任何事情,但它会阻止一些系统管理员无需通过立即拥有数据而无需进行故意中断的数据。
  4. 我希望您不会存储信用卡或其他敏感数据,尤其是在您所在司法辖区的隐私权法律规定的情况下。在共享服务器上存储这种东西可能会让你起诉。如果不出意外,以这种方式存储信用卡数据将违反您的商家帐户 - 如果他们感到厌烦,将无法使用Visa和万事达卡。

答案 2 :(得分:1)

  1. 是。

  2. 他们可以。

  3. 不是真的,但它仍然是个好主意。有人可能会抓住您的数据库,而不是PHP源代码。然后在数据库中加密将是一件好事。

  4. 你是对的。唯一可以确定的方法是运行自己的服务器。您还应该了解Payment Card Industry Data Security Standard

答案 3 :(得分:1)

1)当然,使用phpmyadmin通过HTTP查看数据是不安全的。

关于2),如果您没有物理安全性,那么您就不能拥有任何安全性(可能除了存储您在托管站点外部加密和解密的加密数据外)。

由于您的托管公司可以访问计算机,因此他们可以读取您的所有数据。

话虽如此,根据我的经验,托管服务提供商不会这样做,并试图保证您的数据安全(因为 是他们的业务),几乎与银行的业务尝试相同保留你的钱并保护它而不是服用它。

3)仅在保留备份时才进行数据库加密。对于运行实时版本,它提供了更多的安全性(如果有的话)并且使事情变得更加麻烦。

答案 4 :(得分:1)

我认为bobince是完全正确的。公钥加密可以帮助您,但请记住,您放松使用PHPMyAdmin来查看数据 - 您将看到需要在侧面的某处解密的垃圾。请参阅http://www.php.net/openssl以了解有关PHP和公钥加密的更多信息。

答案 5 :(得分:0)

完全在服务器上进行加密/解密过程,正如您所怀疑的那样,仅仅是模糊处理而且本身并不安全。它可以帮助部分攻击,攻击者获得对数据库的读访问权(通常通过SQL注入漏洞),但无法读取站点脚本或运行任意代码。

如果您只需要写出服务器无需重新读回的敏感数据(规范信用卡号),您就可以使用公钥加密技术来完成。使用您的公钥加密数据,然后仅在具有相应私钥的已知安全计算机上读取它。这可以保护过去的数据,在脚本可读的情况下有更大的妥协,并且在攻击者获得对脚本的写访问权限的情况下,它们至少只会泄漏新的传入数据,而不是旧的东西。希望这会给你时间来检测入侵和重建。

  

托管管理员是否可以截获加密编码/解码方法?

是。但是主机可以实际访问机器,所以如果他们真的想要的话,就可以在它上面拦截一个rootkit,它拦截了webapp从第一天起就在做的所有事情。无法信任您的主机,因此请选择信誉良好的主机并且不要在共享服务器上运行敏感系统。