朋友您好我正在创建一个简单的投资组合网站,其中管理员用户名和密码既不是盐渍的,也不是使用md5而是纯文本。 'login.php'页面是'unguessable.php'页面。简单的网站可以吗?
if(isset($_POST['btnCreateAccount']))
{
$Error->blank($_POST['username'], 'Username');
$Error->blank($_POST['password'], 'Password');
$Error->blank($_POST['level'], 'Level');
$Error->email($_POST['email']);
if($Error->ok())
{
$u = new User();
$u->username = $_POST['username'];
$u->email = $_POST['email'];
$u->level = $_POST['level'];
$u->setPassword($_POST['password']);
$u->insert();
redirect('users.php');
}
else
{
$username = $_POST['username'];
$email = $_POST['email'];
$level = $_POST['level'];
}
}
else
{
$username = '';
$email = '';
$level = 'user';
}
答案 0 :(得分:2)
此表单应通过SSL(HTTPS)运行,以避免密码在传输过程中受到损害。
您绝不应以纯文本格式存储密码。 User->setPassword()
做了什么?是否只是将密码值分配给在调用->insert()
时存储到数据库的某个属性?为什么不在这个例程中使用salt和md5密码?
如果您的数据库遭到入侵,您的用户可能无法专门为您自己的系统选择您显示的密码 - 因此您可能会导致更广泛的安全问题。