PHP - 安全的MySQL登录

时间:2012-07-14 19:47:13

标签: php mysql security

我有一个PHP函数,我的服务器上的任何其他函数都可以连接到全局MySQL数据库:

function connect_to_mysql_db() {

$con = mysql_connect("localhost", "user_name", "password");
if (!$con)
   {
      die('Could not connect: ' . mysql_error());
   }
mysql_select_db("db_name", $con);

}

保存此功能的文件以及大多数其他文件位于我的BlueHost服务器上的以下位置:

/home3/username/includes/scripts.php

数据库目前只包含一个包含电子邮件地址列表的表(我的订阅者列表......)我只想知道数据库是否安全(为了我的订阅者)

如果没有,是否有人有任何其他想法(加密?)。我知道HASHING不起作用,因为那通常是单向的......

修改

仅供参考: / includes / 目录不是 / public_html /

结论

感谢所有帮助过我的人,但我认为没有充分理由有太多责任,所以我不会在数据库中存储任何安全的东西。相反,我会使用外部服务!

干杯!

3 个答案:

答案 0 :(得分:2)

我认为这不会给你任何额外的安全保障。 如果有人攻击您的服务器,读取脚本以获取数据库凭据,登录到mysql,读取mailadressen并仅获取加密数据,他可能会再次查看解密密钥的脚本...

所以,我认为这不会让它变得更加安全。您最好专注于编写安全环境以防止对服务器的任何访问; - )

答案 1 :(得分:1)

我认为它足够安全。无论如何,如果你想要更多,尝试这样的事情:

$crypted = openssl_encrypt ('myemail' ,'AES256', 'mypass')

然后

$decrypted = openssl_decrypt ($crypted, 'AES256', 'mypass')

参考here

答案 2 :(得分:-2)

您可以使用AES加密电子邮件地址。 即:

$query = "INSERT INTO (table) AES_ENCRYPT('$email', '$salt')..."

要以正常文本回复电子邮件:

$query = "SELECT AES_DECRYPT('email', '$salt') FROM (table) WHERE 1..."

$ salt将是您放入变量的随机生成的密钥。

数据库表中的列必须是blob。