我有一个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 /
结论
感谢所有帮助过我的人,但我认为没有充分理由有太多责任,所以我不会在数据库中存储任何安全的东西。相反,我会使用外部服务!
干杯!
答案 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。