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

人们使用PHP会话登录随机用户帐户

发布时间:2020-12-13 17:07:07 所属栏目:PHP教程 来源:网络整理
导读:我一直抱怨用户互相登录.他们甚至可以编辑他们的个人资料并作为他们发布…这显然是一个巨大的问题.甚至没有注册的人正在访问该网站并看到他们以其他人身份登录. 这种情况发生在Safari和Firefox中 当人们使用$_SESSION [‘variable’] = name登录时,会设置我
我一直抱怨用户互相登录.他们甚至可以编辑他们的个人资料并作为他们发布…这显然是一个巨大的问题.甚至没有注册的人正在访问该网站并看到他们以其他人身份登录.

这种情况发生在Safari和Firefox中

当人们使用$_SESSION [‘variable’] = name登录时,会设置我的会话;系统,非常标准.会话是跨子域使用:

ob_start();
session_set_cookie_params(0,'/','.subverb.net');
session_start();

在我所有页面的标题中.

我有一个iframe,它包含网站的聊天部分,该部分也包含相同的标题

我不知道我能提供什么其他信息,所以请问.我真的需要这个来排序但不确定问题是什么!

谢谢

回应如下:

标准登录脚本直接取自Larry Ullman教科书:

if ($un && $p) { // If everything's OK.

    // Query the database.
    $query = "SELECT member_id,member_firstname,member_type,username FROM member WHERE (username='$un' AND password=SHA('$p')) AND active IS NULL";  

    $result = mysqli_query ($dbc,$query) or trigger_error ("query: $queryn<br />MySQL Error: " . mysqli_error($query));

    if (@mysqli_num_rows($result) == 1) { // A match was made.

        // Register the values & redirect.
        $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
        mysqli_free_result($result);

        $_SESSION['member_id'] = $row['member_id'];
        $_SESSION['first_name'] = $row['member_firstname'];
        $_SESSION['member_type'] = $row['member_type'];
        $_SESSION['username'] = $row['username'];

facebook登录脚本执行以下操作:

$query = "SELECT * FROM member WHERE oauth_prov = 1 AND fb_userid = ".$user['id'];
    $result = mysqli_query ($dbc,$query) or trigger_error ("query: $queryn<br />MySQL Error: " . mysqli_error($dbc));


    if(mysqli_num_rows($result) == 1 ) {



    while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {;


    $_SESSION['first_name'] = $row['member_firstname'];
    $_SESSION['member_id'] = $row['user_id'];
    $_SESSION['oauth_uid'] = $row['fb_userid'];
    $_SESSION['username'] = $row['username'];

所有输入都已清理,用户无法通过其他方式添加详细信息.用户名和密码正常添加,facebook id通过单击执行脚本的链接从Facebook获得.

这些错误发生在登录过程之后,或者登录甚至没有发生.没有其他地方在网站上设置会话值.

解决方法

我会检查记录用户漏洞的数据库例程.您确定它正在选择适当的用户并且只选择适当的用户吗?您是否测试过您的select语句是否不受不同用户输入方案的影响?鉴于它在页面加载中持续存在,几乎可以肯定是$_SESSION问题.假设您在登录时加载有关用户的信息,那么问题是在登录期间出现了$_SESSION变量的初始填充.因此,您一定要检查登录脚本以确保它是可靠的.

您可能想要发布登录脚本的其他部分,因此我们可以查看漏洞/问题.

(编辑:李大同)

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

    推荐文章
      热点阅读