首頁  >  文章  >  後端開發  >  PHP設定Cookie的HTTPONLY屬性方法詳解

PHP設定Cookie的HTTPONLY屬性方法詳解

黄舟
黄舟原創
2017-03-07 09:50:254143瀏覽

下面小編就為大家帶來一篇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的選項,開啟方法為:

<?php
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設定Cookie的HTTPONLY屬性方法詳解的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn