PHP設置COOKIE的HttpOnly屬性


httponly是微軟對cookie做的擴展。這個主要是解決用戶的cookie可能被盜用的問題。
    大家都知道,當我們去郵箱或者論壇登陸后,服務器會寫一些cookie到我們的瀏覽器,當下次再訪問其他頁面時,由於瀏覽器回自動傳遞cookie,這樣 就實現了一次登陸就可以看到所有需要登陸后才能看到的內容。也就是說,實質上,所有的登陸狀態這些都是建立在cookie上的!假設我們登陸后的 cookie被人獲得,那就會有暴露個人信息的危險!當然,想想,其他人怎么可以獲得客戶的cookie?那必然是有不懷好意的人的程序在瀏覽器里運行! 如果是現在滿天飛的流氓軟件,那沒有辦法,httponly也不是用來解決這種情況的,它是用來解決瀏覽器里javascript訪問cookie的問 題。試想,一個flash程序在你的瀏覽器里運行,就可以獲得你的cookie的!
    IE6的SP1里就帶了對httponly的支持,所以相對還說還是些安全性。

PHP中的設置 
 PHP5.2以上版本已支持HttpOnly參數的設置,同樣也支持全局的HttpOnly的設置,在php.ini中
 ----------------------------------------------------- 
 session.cookie_httponly = 
 ----------------------------------------------------- 
設置其值為1或者TRUE,來開啟全局的Cookie的HttpOnly屬性,當然也支持在代碼中來開啟: 
 ----------------------------------------------------- 
 <?php
  ini_set("session.cookie_httponly", 1); 
 // or
  session_set_cookie_params(0, NULL, NULL, NULL, TRUE); 
 ?> 
 ----------------------------------------------------- 
Cookie操作函數setcookie函數和setrawcookie函數也專門添加了第7個參數來做為HttpOnly的選項,開啟方法為: 
 ------------------------------------------------------- 
 setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
 setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
 ------------------------------------------------------- 
 對於PHP5.1以前版本以及PHP4版本的話,則需要通過header函數來變通下了: 
 ------------------------------------------------------------- 
 <?php
  header("Set-Cookie: hidden=value; httpOnly");
  ?> 
 -------------------------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM