2012-07-14 200 views
0

我有我的服务器上的任何其他功能去连接到一个全球性的MySQL数据库PHP函数: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不会工作,因为这通常是1路...

编辑

FYI:该/包括/目录不是/的public_html/

结论

非常感谢所有帮助过我的人,但我决定,没有任何理由,承担太多的责任,所以我不会存储任何安全在数据库中。相反,我会使用外部服务!

干杯!

+1

你想知道是否连接到数据库的方式,你目前这样做是安全的吗? – Gumbo 2012-07-14 19:56:23

+1

我不认为你明白“安全”的含义。 – rook 2012-07-14 19:57:20

+0

是的,差不多;) – Walendas 2012-07-14 19:57:40

回答

-2

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

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

要获取电子邮件回到正常的文本:

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

$盐将是你放入变量随机产生的密钥。

您数据库表中的列需要是blob。

+0

提示:php端加密允许256位AES,mysql端只有128. – 2012-07-14 20:00:45

+0

2事情:1)我必须定义'$ salt'吗? 2)什么是_blob_?谢谢!!!我是一个n00b! – Walendas 2012-07-14 20:01:27

+0

**也**我有一个ID列,所以我怎么做INSERT语句? – Walendas 2012-07-14 20:05:11

1

我觉得它很安全。无论如何,如果你想了解更多,尝试这样的事情:

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

然后

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

参考here

2

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

所以,我认为这不会更安全。你最好专注于编写一个安全的环境,以防止任何访问服务器;-)