cookie的httponly的設定(可簡單仿XSS攻擊)
httponly是微軟對cookie做的擴充。這個主要是解決使用者的cookie可能被盜用的問題。為了緩解XSS(跨站點腳本攻擊)帶來的資訊洩露風險,Internet Explorer 6 SP1為Cookie引入了一個新屬性。這個屬性規定,不許通過用戶端腳本通路cookie。使用HTTP-only Cookie後,Web 站點就能排除cookie中的敏感資訊被發送給黑客的計算機或者使用腳本的Web站點的可能性。
示範1:沒有設定httponly的cookie
<code><?php</code>
<code>setcookie(</code><code>"test_username"</code><code>, </code><code>"testnamedfs"</code><code>, time()+3600, </code><code>"/"</code><code>, </code><code>""</code><code>, false);</code>
<code>?></code>
<code><h1>示範:沒有設定httponly的cookie</h1></code>
<code><h2>【php背景代碼可以擷取cookie,js或浏覽器也可以擷取cookie】</h2></code>
<code>echo</code> <code>'php列印出cookie:<pre />'</code><code>;</code>
<code>print_r(</code><code>$_COOKIE</code><code>);</code>
<code><hr /></code>
<code><script></code>
<code>document.write(</code><code>'js擷取到的cookie:'</code><code>+document.cookie);</code>
<code></script></code>
示範2:設定了httponly的cookie
<code>setcookie(</code><code>"test_username"</code><code>, </code><code>"testnamedfs"</code><code>, time()+3600, </code><code>"/"</code><code>, </code><code>""</code><code>, false, true);</code>
<code><h1>示範:設定了httponly的cookie</h1></code>
<code><h2>【php背景代碼可以擷取cookie,js或浏覽器 不可以 擷取cookie】</h2></code>
總結:
1、網站設定了httponly後,前台任何用戶端(如:js、浏覽器等)都不能擷取到cookie。隻能通過背景代碼擷取(如:java、php代碼)。
2、存在浏覽器相容性,比如cookie設定了httponly,火狐浏覽器依然能顯示cookie。
3、适用情況:前台cookie都是從背景傳遞判斷。不需要js擷取。
網上資料:
<a href="http://desert3.iteye.com/blog/869080" target="_blank">http://desert3.iteye.com/blog/869080</a>
<a href="http://geeksavetheworld.com/blog/2013/10/09/php-set-cookie-httponly-to-prevent-xss-attack/" target="_blank">http://geeksavetheworld.com/blog/2013/10/09/php-set-cookie-httponly-to-prevent-xss-attack/</a>
<a href="http://hi.baidu.com/huazai7418/item/293a16a92225a81ca8cfb78c" target="_blank">http://hi.baidu.com/huazai7418/item/293a16a92225a81ca8cfb78c</a>
本文轉自許琴 51CTO部落格,原文連結:http://blog.51cto.com/xuqin/1389919,如需轉載請自行聯系原作者