如何保护数据库服务器?

时间:2009-07-25 14:47:42

标签: php database security passwords

目前我的数据库用户及其密码很容易猜到,例如

数据库用户:dbadmin

数据库pwd:super + companyname

如何生成安全的数据库密码?使用md5或sha1 ??

保护我的数据库需要注意哪些事项?

我正在使用php,谢谢

4 个答案:

答案 0 :(得分:4)

如果您正在寻找的只是一个安全的密码生成器,那么有许多工具可用于创建强密码。 Keepass是我使用的,但您也可以查看pwgen,apg,passgen或其他。

为了确保数据库的安全,您还需要考虑在脚本中使用用户名/密码组合的位置。我经常使用的一种技术是将凭证放在一个单独的文件中,并将它们导入到其他所需的地方。这样,您就可以通过Web服务器和文件系统安全设置对该文件进行严格的访问规则。

安全性是一种分层方法,您采取的预防措施越多,您的服务器就越能抵抗恶意活动。

答案 1 :(得分:3)

使用某种模式创建复杂的密码,但也可以记住。

E.g。想想一个愚蠢的句子并拿出每个单词的第一个字母。

“16只蝴蝶吸取了稻草,看看哪5只应该成为毛毛虫。”

形成密码“16Bdstsw5sbCf”。

这是13个字符长,包含3个数字和一些大写字母。这应该是非常强大的,并且比仅仅随机字符串更容易记住。

为了获得更好的力量,也要在那里加一些标点符号。

答案 2 :(得分:0)

只需粘贴键盘即可制作安全密码:

Z3w947CFqnY39cfo

这就像你可能需要的那样安全 - 它不受字典攻击的影响,并且足够长时间免受暴力攻击。

(当然你需要把它写下来,除非你有特技记忆,但这总是与密码妥协 - 并且可能它会出现在你的应用程序代码或配置中。)

答案 3 :(得分:0)

如果您使用phpMyAdmin,则在创建用户时,它会生成“生成密码”选项。试试这个,或者你可以这样做:

function generatePassword($length) {
    // start with a blank password
    $password = "";
    // define possible characters
    $possible = "0123456789bcdfghjkmnpqrstvwxyz"; 
    // set up a counter
    $i = 0; 
    // add random characters to $password until $length is reached
    while ($i < $length) { 
        // pick a random character from the possible ones
        $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
        // we don't want this character if it's already in the password
        if (!strstr($password, $char)) { 
            $password .= $char;
            $i++;
        }
     }
     // done!
     return $password;
 }