Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为会员登录站点创建“超级管理”密码_Php_Mysql_Login_Salt - Fatal编程技术网

Php 如何为会员登录站点创建“超级管理”密码

Php 如何为会员登录站点创建“超级管理”密码,php,mysql,login,salt,Php,Mysql,Login,Salt,我们在LAMP stack上建立了一个网站,允许会员登录他们的个人资料。虽然我们有一个管理界面来处理大多数任务,但有时作为成员登录并查看他们看到的内容是“必要的” 我们为会员提供了一个非常安全和彻底的salt和验证登录过程,但我认为以下声明并不太安全: sql = SELECT * FROM userlogins WHERE username = :user (run the users entered password through the salt process) $userpassw

我们在LAMP stack上建立了一个网站,允许会员登录他们的个人资料。虽然我们有一个管理界面来处理大多数任务,但有时作为成员登录并查看他们看到的内容是“必要的”

我们为会员提供了一个非常安全和彻底的salt和验证登录过程,但我认为以下声明并不太安全:

sql = SELECT * FROM userlogins WHERE username = :user

(run the users entered password through the salt process)
$userpasswordentered = undisclosed salt process of ($_POST['password']);

if($userpasswordentered == value retrieved from userlogins above OR $_POST['password'] == 'hardcodedpw') {

    log user in
}

有没有一种真正“安全”的方法来创建一个“超级”密码,允许我在给定有效用户名的情况下登录任何用户帐户?

我将实现某种用户模拟功能。因此,基本上,从您的管理员帐户,您可以输入/搜索用户ID,然后调用登录用户代码,就像该用户已登录一样。这将注销管理员用户,但他们现在将根据请求模拟客户

但就我个人而言,如果我有一个用户/编辑操作,那么代码会执行以下操作:

//check for an admin user
if ($current_user->role == 'admin')
    //admins have to specify customers to edit
    if (isset($_GET['id']))
        $user_id = $_GET['id'];
    else
        //if no customer is specified, return a 404
        http_404();
else
    //customers can only see their own details
    $user_id = $current_user->id;

//get the user details to edit
$user_to_edit = $repository->get_user($user_id);

这样,管理员用户就可以保持登录状态,并且您可以控制管理员用户可以处理多少客户的东西。

我将实现某种用户模拟功能。因此,基本上,从您的管理员帐户,您可以输入/搜索用户ID,然后调用登录用户代码,就像该用户已登录一样。这将注销管理员用户,但他们现在将根据请求模拟客户

但就我个人而言,如果我有一个用户/编辑操作,那么代码会执行以下操作:

//check for an admin user
if ($current_user->role == 'admin')
    //admins have to specify customers to edit
    if (isset($_GET['id']))
        $user_id = $_GET['id'];
    else
        //if no customer is specified, return a 404
        http_404();
else
    //customers can only see their own details
    $user_id = $current_user->id;

//get the user details to edit
$user_to_edit = $repository->get_user($user_id);

这样,管理员用户就可以保持登录状态,并且您可以控制管理员用户可以处理多少客户的东西。

Harcoded/后门密码从来都不是一个好主意。永远都不会。同意马克的观点。只需给数据库中的每个帐户一个访问级别。超级用户帐户将具有允许这种访问类型的访问级别。只要确保你没有违反你自己的隐私政策。加密/后门密码从来都不是一个好主意。永远都不会。同意马克的观点。只需给数据库中的每个帐户一个访问级别。超级用户帐户将具有允许这种访问类型的访问级别。只要确保你没有违反你自己的隐私政策。