天天看點

cookie的httponly的設定(可簡單仿XSS攻擊)

cookie的httponly的設定(可簡單仿XSS攻擊)

httponly是微軟對cookie做的擴充。這個主要是解決使用者的cookie可能被盜用的問題。為了緩解XSS(跨站點腳本攻擊)帶來的資訊洩露風險,Internet Explorer 6 SP1為Cookie引入了一個新屬性。這個屬性規定,不許通過用戶端腳本通路cookie。使用HTTP-only Cookie後,Web 站點就能排除cookie中的敏感資訊被發送給黑客的計算機或者使用腳本的Web站點的可能性。

示範1:沒有設定httponly的cookie

<code>&lt;?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>?&gt;</code>

<code>&lt;h1&gt;示範:沒有設定httponly的cookie&lt;/h1&gt;</code>

<code>&lt;h2&gt;【php背景代碼可以擷取cookie,js或浏覽器也可以擷取cookie】&lt;/h2&gt;</code>

<code>echo</code> <code>'php列印出cookie:&lt;pre /&gt;'</code><code>;</code>

<code>print_r(</code><code>$_COOKIE</code><code>);</code>

<code>&lt;hr /&gt;</code>

<code>&lt;script&gt;</code>

<code>document.write(</code><code>'js擷取到的cookie:'</code><code>+document.cookie);</code>

<code>&lt;/script&gt;</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>&lt;h1&gt;示範:設定了httponly的cookie&lt;/h1&gt;</code>

<code>&lt;h2&gt;【php背景代碼可以擷取cookie,js或浏覽器 不可以 擷取cookie】&lt;/h2&gt;</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,如需轉載請自行聯系原作者