cookie,会话和安全性

时间:2011-11-15 06:08:06

标签: php security cookies

我想出了自己的方式来保护我网站上的版主。首先,我知道黑客可能会劫持我的会话。所以我做的是向主持人添加一个cookie,并设置我的算法如何设置和取消设置这些cookie。

首先,当主持人登录时,我采取的预防措施是:

        if('Moderator'==is_monitor($name))//function finds who is the user
        {
            ini_set('session.use_only_cookies',true);
            session_start();
            $password_hash = hash('sha256',$salt.hash('sha256', $pass));
            $_SESSION['mod_identify']=$password_hash;
            if(!isset($_Cookie['adderss']))
            {
              setCookie("adderss",$ip_address,time()+60*60*24*365*5,"/");
            }

然后我用它来重置每个页面上的会话:

if(!isset($_SESSION))
{
   start_session(); // all sessions should be reset with a new id
}

问题是,为许多页面设置cookie是否是主持人的负担?!?

你认为我的方式对于会话/ cookie劫持是否足够安全?

1 个答案:

答案 0 :(得分:4)

没有。如果要阻止会话劫持,请使用HTTPS(使用SSL)。此外,如果$passsession_start(),则永远不要在会话中存储某些用户帐户的密码

或者,您可以使用像this one这样的Session包装器类。请注意,这将防止会话劫持,而只是加密存储在其中的数据。

此外,除非您已创建自己的名为“start_session()”的自定义函数,否则RewriteCond %{REQUEST_URI} =/admin RewriteCond %{HTTPS} off RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} 是您要调用以启动会话的函数。

如果你想将用户重定向到HTTPS,你可以在.htaccess文件中使用apache的mod_rewrite这样做:

{{1}}

或类似的东西,具体取决于您希望用户使用安全套接字层的位置。