如何确保MySQL数据库的安全性?

时间:2020-03-05 18:51:11  来源:igfitidea点击:

我将要实现一个" PHP / mySQL"设置来存储信用卡信息。

好像要走" AES_ENCRYPT / AES_DECRYPT",

但我仍然对以下几点感到困惑:

如何确保加密密钥的安全性?

将其硬编码到我的PHP脚本中(它将与数据库位于同一服务器上)似乎是一个重大的安全漏洞。

什么是"最佳实践"解决方案?

解决方案

回答

对于我们是否真的需要保留CC#,我们应该进行认真的思考。如果我们没有充分的理由,那就不要!每隔一周,我们会听到一些公司受到威胁,并且CC#被盗。所有这些公司都犯了致命的缺陷,他们保留了太多的信息。保持CCuntil清除交易记录。之后,将其删除。

至于保护服务器,最好的做法是保护硬件并使用MySQL的内部系统套接字,并确保阻止对MySQL服务器的任何网络访问。确保同时使用系统权限和MySQL权限,以根据需要进行尽可能少的访问。对于某些脚本,我们可能会考虑只写身份验证。确实没有一种万无一失的加密方法(因为我们将始终需要解密,因此必须存储密钥)。这并不是说我们不应该将密钥存储在一个位置,并且如果我们发现系统受到破坏,则可以破坏文件并使数据无用。

回答

我同意,但是如果我们也不需要,请不要抄送。但是,如果确实有,请确保在网上无法访问包含该文件的文件。我们可以编写一个将返回密钥的二进制文件。这样,它就不会以明文形式存储。但是,如果服务器受到威胁,仍然很容易获得它。

回答

我们所需的安全性取决于应用程序。例如,如果唯一使用cc的时间是用户登录时(在线商店类型的情况),那么我们可以使用用户纯文本密码的哈希值,每用户盐和cc来加密cc。专用的ccsalt。不要永久存储此值。

由于我们没有存储此值,因此只有在用户输入密码登录时才能获得该值。只需确保我们具有正确的会话到期时间和垃圾回收策略即可。

如果这种情况不适用于我们,请更详细地描述情况,以便我们提供更合适的答案。