2011-11-15 200 views
0

我想出了我自己的方式來保護我網站上的版主。首先,我知道黑客會劫持我的會話。所以我做的是向主持人添加一個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

根據[documentation](http://php.net/manual/en/language.variables.basics.php),變量名稱區分大小寫。也就是說,'$ _Cookie'與'$ _COOKIE'不一樣。 – nickb

+0

我知道..lolffff –

回答

4

編號使用HTTPS - 使用SSL - 如果要防止會話劫持。另外,如果$pass,那麼千萬不要在會話中存儲某個用戶帳戶的密碼

或者,您可以使用會話封裝類如this one。請注意,這將防止會話劫持,而只是加密存儲在其中的數據,而不是而不是

此外,除非您創建了自己的名爲「start_session()」的自定義函數,否則session_start()是您希望調用啓動會話的函數。

如果你想將用戶重定向到HTTPS,您可以用Apache的mod_rewrite做在.htaccess文件像這樣:

RewriteCond %{REQUEST_URI} =/admin 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} 

或類似的東西,這取決於你想在那裏用戶使用安全套接字層。

+0

大聲笑......那是真的。密碼被哈希..所以即使有人得到它,嘗試登錄時也沒用。所以使用HTTPS是唯一的解決方案,使用2個餅乾不是更安全嗎?..感謝代碼,我已經有一個類...並將使用他們 –

+0

HTTPS是男人。儘管它不是男人,但它是一臺機器。有點像終結者。 JK。是的,如果你真的想保護會話劫持,你需要使用HTTPS。 –

+0

如何將會話設置爲https,我知道要將cookie設置爲https,您需要將1作爲set_cookie()函數中的最後一個參數 –