加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

PHP是$_SESSION足以保护网页?

发布时间:2020-12-11 23:44:02 所属栏目:MySql教程 来源:网络整理
导读:我正在运行一个简单的服务,用户必须登录才能操作特殊的功能. 我的MySQL数据库存储用户名,密码和user_id. 当用户想要登录时,他们必须提供发布到profile.php的用户名和密码. profile.php做了一个简单的检查: // Sanity Checkif(empty($_POST['smart_email'])|

我正在运行一个简单的服务,用户必须登录才能操作特殊的功能.

我的MySQL数据库存储用户名,密码和user_id.

当用户想要登录时,他们必须提供发布到profile.php的用户名和密码.

profile.php做了一个简单的检查:

// Sanity Check
if(empty($_POST['smart_email'])|| empty($_POST['smart_password']))
{

    echo 'Sorry,wrong login/passwd';
    exit;
}
else
{
    //
    $smart_email = $_POST['smart_email'];
    $smart_password=$_POST['smart_password'];

    // Check if registerd and password matches
    if(DB_IsAuthorized($smart_email,$smart_password) == true)
    {
        // Obtain proper UserID from the database
        $UserID             = DB_GetId($smart_email);

        // set the session user_id variable
        $_SESSION['user_id'] = $UserID;


        //
        // Display the User profile page
        //
    }

}

从那时起,与用户相关的每个页面都会检查$_SESSION中设置的user_id,以确定此用户是否已登录并已获得授权.

if (isset($_SESSION['user_id']) && is_numeric($_SESSION['user_id']) && $_SESSION['user_id']>0) 
{ 
    // USER IS LOGGED IN 
}

问题是:这个$_SESSION [‘user_id’]是否足以检查来自非登录用户的页面? 最佳答案 这个问题过于宽泛,但简单的答案是否定的.

首先,您需要使用https来确保通过使用防火墙和其他必需的安全工具来保护用户免受黑客攻击.

其次,您需要使用htaccess来更改扩展名,例如show user .html而不是.php

第三,黑客可以轻易地劫持会话.因此,请始终尝试存储加密的会话值而不是纯文本.

还有很多问题要处理,但它过于复杂和广泛.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读