这个PHP登录名安全吗?

时间:2018-09-15 08:19:17

标签: php login

我只是想学习php知识,我有两个问题。 我想基于用户角色创建系统,首先,我只是为每个用户(管理员,用户等)添加一个角色,直接将其保存在mysql的用户表中?我的意思是我的用户表具有ID,昵称,密码,角色列。这样可以安全吗?

第二个问题是检查

这样的用户权限是否安全

// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}
// Check if the user has admin role, if not then load up page which tells u - You dont have perm to use this site
elseif($_SESSION["role"] !== "admin"){
    include "noperm.php";
    exit;
}

我可以这样做,还是角色用户或未注册用户仍然可以访问此页面(例如,用户管理站点)?

1 个答案:

答案 0 :(得分:0)

是和否,例如,当用户登录php网站时,用户名和密码或他使用的任何凭据将被公开发送,或在带有md5 sha-2和其他算法的网站中加密,简而言之如果算法(加密)较弱,则解密将很容易受到攻击,并且用户将被黑客入侵,并且与HTTP协议连接时的风险更大,因为与HTTPS相比,HTTP是完全开放的,因为HTTPS在客户端和网站上使用证书,并且所有信息都以双重加密发送,加密1,php的算法,加密2,证书SSL,但如果组织产生与该证书相似的证书,则可以欺骗包含SSL证书网站的域名受到攻击。

注意:现实情况是,这取决于个人对网站的保护程度以及使客户端成为密码的强度...

创建自己的算法:

<?php
    // ENCRYPTION //
    $passwordOfTheUSER = "JonnyDeep74";
    $encryptedPassword = str_replace('o', 'UXK', $passwordOfTheUSER);
    $encryptedPassword = str_replace('a', 'PEA', $encryptedPassword);
    $encryptedPassword = str_replace('e', 'MIC', $encryptedPassword);
    echo "encrypted: $encryptedPassword, ";

    // DECRYPTION //
    $decryptedPassword = str_replace('UXK', 'o', $encryptedPassword);
    $decryptedPassword = str_replace('PEA', 'a', $decryptedPassword);
    $decryptedPassword = str_replace('MIC', 'e', $decryptedPassword);
    echo "decrypted: $decryptedPassword.";
?>