12.2.2 密码
必须确认所有用户都有密码(特别是root用户!)并且要选好这些密码,定期修改,与使用操作系统密码一样。这里要记住的基本原则是不要使用字典的单词作为密码,用字典的单词做密码是非常糟糕的想法。数字和字母的结合是最好的方案。
如果要在脚本文件中保存密码,请确认只有密码保存在该脚本中的用户可以阅读该脚本。用来连接数据库的PHP脚本需要能够访问的那个用户的密码。将登录名和密码保存在一个PHP脚本可能是安全的,例如dbconnect.php,这样可以在需要的时候包含这个文件。这个脚本必须小心地保存在Web文档树结构以外,并且只能由特定的用户进行访问。
请记住,如果要将这些细节信息保存在网络文档树中以.inc或其他一些扩展名结尾的文件中,请务必小心,检查Web服务器是否知道这一点,也就是说,这些文件必须解释为PHP,从而防止这些细节在另一个Web浏览器中被看到。
不要以纯文本的形式将密码保存于数据库中。MySQL密码不是这样保存的,但是在Web应用程序中通常也要保存网站用户的注册名和密码。可以用MySQL的SHA1()函数将密码加密以后(单向)再进行保存。请注意,如果在运行SELECT(试图登录一个用户)的时候,以这些格式之一使用INSERT插入一个密码到,必须再次使用相同的函数来检查用户输入的密码。
在本书的第五篇中,我们将使用这个功能来实现我们的项目。