我想出了自己的方式来保护我网站上的版主。首先,我知道黑客可能会劫持我的会话。所以我做的是向主持人添加一个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劫持是否足够安全?
答案 0 :(得分:4)
没有。如果要阻止会话劫持,请使用HTTPS(使用SSL)。此外,如果$pass
是session_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}}
或类似的东西,具体取决于您希望用户使用安全套接字层的位置。