2016-04-13 49 views
0

我正在开发自定义CMS的管理系统。在我所有属于管理站点的页面上,我使用了check_user()函数。该check_user()函数只做到这一点:

function check_user() 
{ 
    session_start(); 

    if ($_SESSION['username'] == "admin") { 

    } else { 
     header("location:admin.php"); 
    } 
} 

虽然它似乎有点简单,这是足以让远离场所多余的成员?如何利用$ _SESSION []变数?有什么建议来改善这个功能?

在此先感谢!

+0

[PHP会话变量安全性如何?](http://stackoverflow.com/questions/1181105/how-safe-are-php-session-variables) – PoX

回答

1

在给定的代码,$ _SESSION是不可利用IF register_globals处于关闭状态(这对所有最新的安装将被关闭...但只是要确定)

虽然根据这些会话参数是如何设置的,它可能被利用。 (例如,使用请求参数作为会话变量中的键)例如,

为了改进此代码,我建议始终开始一个会话,独立于check_user调用。这使您可以重用check_user。

+0

当用户登录时,它会被检查用户名和密码是否在同一行的数据库中。如果是,则$ _SESSION ['用户名']被设置为用户名EG:作为管理员$ _SESSION ['username']将被设置为“admin”。 – Zh4rsiest