关于Session验证登陆状态的一个疑问?

WBOY
Libérer: 2016-06-06 20:10:31
original
1011 Les gens l'ont consulté

写程序也有那么几年头了,框架用的久,原生Session这块几乎没做过什么研究,现在突然想起来,还真有个小疑问:
我一般验证是否登陆类似这样写:

验证:

<code>if(!checkV($_GET['username']) || !checkV($_GET['password']))
{
    return false;
}

if($username == $_GET['username'] && $password == $_GET['password'])
{
    $_SESSION['islogin'] = 1;
}
</code>
Copier après la connexion
Copier après la connexion

状态验证:

<code>function checkLogin()
{
    if(empty($_SESSION['islogin']))
    {
        return false;
    }
    return true;
}
</code>
Copier après la connexion
Copier après la connexion

我总感觉这么写是不是太简单了? 安全方面自己心里没点低,但是这个方法用了挺久也没出过啥问题,望批评指教!

回复内容:

写程序也有那么几年头了,框架用的久,原生Session这块几乎没做过什么研究,现在突然想起来,还真有个小疑问:
我一般验证是否登陆类似这样写:

验证:

<code>if(!checkV($_GET['username']) || !checkV($_GET['password']))
{
    return false;
}

if($username == $_GET['username'] && $password == $_GET['password'])
{
    $_SESSION['islogin'] = 1;
}
</code>
Copier après la connexion
Copier après la connexion

状态验证:

<code>function checkLogin()
{
    if(empty($_SESSION['islogin']))
    {
        return false;
    }
    return true;
}
</code>
Copier après la connexion
Copier après la connexion

我总感觉这么写是不是太简单了? 安全方面自己心里没点低,但是这个方法用了挺久也没出过啥问题,望批评指教!

  • 写法没问题

  • 问题是别人伪造你的session_id,就可以操作该session_id对应的用户,简单解决办法用HTTPS防止中间人

没有问题。心放到肚子里。
最简单的模式就是这样的。其它搞得再复杂还是这样。

你的已经是最佳实践了。

验证之后,存入session,思路没有问题啊。把一些细节完善下就更好了

逻辑上没问题,不过islogin这个没什么意义啊,不如在session里面写入uid或者username,到时候通过这个session值是否存在来判断用户是否登录,其它程序部分需要username的时候还能直接调用$_session['username']这个变量

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal