安全地使用PHP连接MySQL的最佳方法

时间:2010-09-14 15:46:29

标签: php mysql security

我想要一些关于你们认为使用PHP连接到MySQL数据库的最安全方式的输入。目前我正在这样做的方式是一个实用程序PHP文件,我包含在我所有其他PHP文件的顶部。实用程序PHP文件是这样的:

<?php
    if(!defined('IN_PHP')){
        die("hackerssss");
    }
    $mysql_host = "localhost";
    $mysql_user = "root";
    $mysql_pass = "root";
    $mysql_db = cokertrading;
?>

有什么建议吗?

5 个答案:

答案 0 :(得分:25)

建议:您可能永远不应该以root身份运行;创建另一个帐户并为其提供网站所需的“最少”权限。

答案 1 :(得分:8)

我可以相信没人提到MYSQLIprepared statements,你可能会锁定你的密码和数据库连接,但如果我只需在登录表单中键入';DROP TABLE users;--,那最终是徒劳的

检查http://en.wikipedia.org/wiki/SQL_injection,了解我正在谈论的内容。

答案 2 :(得分:6)

  • 定义一对正确的登录凭据而不是“root / root”(将用户名更改为其他名称,并选择复杂的密码);

  • 如果可能的话,限制在防火墙级别访问数据库到localhost,或者如@Scott在评论中所说,将mySQL设置为仅侦听来自127.0.0.1的连接。如果两者都不可能,请限制mySQL级别的访问权限。 ("username"@"localhost"

答案 3 :(得分:5)

因为PHP脚本是服务器端 - 即它们在服务器上解析而输出被发送到浏览器 - 您这样做的方式非常安全。

人们能够获得您的用户名和密码的唯一方法是实际入侵您的服务器并查看源代码 - 在这种情况下,没有办法(在PHP中)可以防止这种情况发生。

答案 4 :(得分:5)

  1. 请记住,任何能够阅读该文件的人都会知道您的SQL密码:设置其他人无法读取。
  2. 不要使用root登录:为每个应用程序创建一个用户。
  3. 请勿使用“root”作为root密码。
  4. 不要将密码提供给所有人。