php如何設定httponly

2020-08-12 14:00:32

php設定httponly的方法:首先找到並開啓「php.ini」檔案;然後設定「session.cookie_httponly」項的值爲1或者TRUE;接着通過「setrawcookie」方法開啓即可。

推薦:《》

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"); ?>

以上就是php如何設定httponly的詳細內容,更多請關注php中文網其它相關文章!