寫這篇的目的是,今天在重新學習javascript時發現了HttpOnly這個標簽,所以專門的mark了下,
誰在什么時候發明了HttpOnly
2002年微軟為ie6的sp1創造了HttpOnly
什么是HttpOnly
HttpOnly是包含在http回傳頭Set-Cookie里面的一個附加的flag,所以它是后端服務器對cookie設定的一個附加的屬性,在生成cookie時使用HttpOnly標志有助于減輕客戶端腳本訪問受保護cookie的風險(如果瀏覽器支持的話)
下面的例子展示了如何設定Set-Cookie 回傳頭的語法
Set-Cookie: <name>=<value>[; <Max-Age>=<age>]
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; HttpOnly]
如果HTTP回應標頭中包含HttpOnly標志(可選),客戶端腳本將無法訪問cookie(如果瀏覽器支持該標志的話),因此即使客戶端存在跨站點腳本(XSS)漏洞,瀏覽器也不會將Cookie透露給第三方,
如果瀏覽器不支持HttpOnly,并且后端服務器嘗試設定HttpOnly cookie,瀏覽器也會忽略HttpOnly標志,從而創建傳統的,腳本可訪問的cookie,那么該cookie(通常是會話cookie)容易受到XSS攻擊
使用HttpOnly緩解最常見的XSS攻擊
大多數XSS攻擊都是針對會話cookie的盜竊,后端服務器可以通過在其創建的cookie上設定HttpOnly標志來幫助緩解此問題,這表明該cookie在客戶端上不可訪問,
如果支持HttpOnly的瀏覽器檢測到包含HttpOnly標志的cookie,并且客戶端腳本代碼嘗試讀取該cookie,則瀏覽器將回傳一個空字串作為結果,這會通過阻止惡意代碼(通常是XSS)將資料發送到攻擊者的網站來使攻擊失敗,
java服務器設定HttpOnly
自從采用Java Servlet 3.0之上的容器,很容易在cookie上設定HttpOnly標志,實際上,setHttpOnly和isHttpOnly方法可在Cookie介面中使用,如下
Cookie cookie = getMyCookie("myCookieName");
cookie.setHttpOnly(true);
在WEB-INF/web.xml的設定如下
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
努力地向月光下的影子——駭客靠攏!!! 黎明之花,待時綻放轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/553345.html
標籤:其他
上一篇:Three.js 進階之旅:滾動控制模型影片和相機影片 🦢
下一篇:返回列表
