PHP設置Cookie的HTTPONLY屬性

httponly是微軟對cookie作的擴展。這個主要是解決用戶的cookie可能被盜用的問題。
    你們都知道,當咱們去郵箱或者論壇登錄後,服務器會寫一些cookie到咱們的瀏覽器,當下次再訪問其餘頁面時,因爲瀏覽器回自動傳遞cookie,這樣就實現了一次登錄就能夠看到全部須要登錄後才能看到的內容。也就是說,實質上,全部的登錄狀態這些都是創建在cookie上的!假設咱們登錄後的cookie被人得到,那就會有暴露我的信息的危險!固然,想一想,其餘人怎麼能夠得到客戶的cookie?那必然是有不懷好意的人的程序在瀏覽器裏運行!若是是如今滿天飛的流氓軟件,那沒有辦法,httponly也不是用來解決這種狀況的,它是用來解決瀏覽器裏javascript訪問cookie的問題。試想,一個flash程序在你的瀏覽器裏運行,就能夠得到你的cookie的!
    IE6的SP1裏就帶了對httponly的支持,因此相對還說仍是些安全性。javascript

 

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"); ?> 
相關文章
相關標籤/搜索