我想出了我自己的方法来保护我网站上的版主。首先,我知道黑客可能会劫持我的会话。所以我所做的就是给版主添加一个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劫持?
No。如果你想防止会话劫持,使用HTTPS——它使用SSL。另外,不要在会话中存储某些用户帐户的密码,如果这就是$pass
。
或者,您可以使用像这样的会话包装器类。注意,这将而不是防止会话劫持,而只是加密存储在其中的数据。
另外,除非你已经创建了自己的自定义函数"start_session()",否则session_start()
是你想要调用来启动会话的函数。
如果你想将用户重定向到HTTPS,你可以在你的。htaccess文件中使用apache的mod_rewrite,如下所示:
RewriteCond %{REQUEST_URI} =/admin
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}
或类似的东西,这取决于您希望用户在哪里使用安全套接字层