请注意:我限制此脚本以显示基本结构。它不起作用。
class AuthController
{
protected $dump = NULL;
private function recall()
{
$dump = $this->query('SELECT * FROM table WHERE access="id" ORDER BY id ASC LIMIT 1');
$this->dump = mysql_fetch_array($dump);
}
}
$user = new AuthController($id);
请记住,转储将包含一个数组
1.)id(自动分类)。
2.)唯一名称。
3.)盐 - (用密码随机盐洗)
4.)密码(哈希)。
现在,我的问题和目的。我必须将用户数据转储到变量中以准备测试密码,以查看密码是否与数据库中用户存储的散列密码匹配。
另一种方法是使用两个查询。 first 将在db中检索与用户关联的salt - (使用salt来准备密码以匹配哈希)。并且第二个查询将传递准备好的密码以及用户ID或唯一名称,以查看是否发生匹配。我认为这是不必要的数据库资源使用;这些信息可以存储起来供以后使用。
必须要问的是,这是否存在安全观点的风险?
答案 0 :(得分:1)
您在服务器端执行的所有操作都可以被认为是安全的。开始担心服务器在内存中的信息是不行的,因为我们会发疯。如果有人知道你服务器内存中的内容,那么无论如何他都可以完全访问你的系统(或者他的名字是John Skeet)。
确保: