前端随心记---------HTTP之HTTP-only
什么是HttpOnly?
微軟公司的Internet Explorer 6 SP1引入了一項(xiàng)新的特性。這個(gè)特性是為Cookie提供了一個(gè)新屬性,用以阻止客戶端腳本訪問(wèn)Cookie。
如果cookie中設(shè)置了HttpOnly屬性,那么通過(guò)js腳本將無(wú)法讀取到cookie信息,這樣能有效的防止XSS攻擊,竊取cookie內(nèi)容,這樣就增加了cookie的安全性。
HttpOnly的用法
Set-Cookie: =[; =] [; expires=][; domain=] [; path=][; secure][; HttpOnly]
屬性含義:
1 secure屬性
當(dāng)設(shè)置為true時(shí),表示創(chuàng)建的 Cookie 會(huì)被以安全的形式向服務(wù)器傳輸,也就是只能在 HTTPS 連接中被瀏覽器傳遞到服務(wù)器端進(jìn)行會(huì)話驗(yàn)證,如果是 HTTP 連接則不會(huì)傳遞該信息,所以不會(huì)被竊取到Cookie 的具體內(nèi)容。
2 HttpOnly屬性
如果在Cookie中設(shè)置了"HttpOnly"屬性,那么通過(guò)程序(JS腳本、Applet等)將無(wú)法讀取到Cookie信息,這樣能有效的防止XSS攻擊。
即使應(yīng)答頭中含有HttpOnly屬性,當(dāng)用戶瀏覽有效域中的站點(diǎn)時(shí),這個(gè)cookie仍會(huì)被自動(dòng)發(fā)送。但是,卻不能夠在Internet Explorer 6 SP1中使用腳本來(lái)訪問(wèn)該cookie,即使起初建立該cookie的那個(gè)Web 站點(diǎn)也不例外。這意味著,即使存在跨站點(diǎn)腳本攻擊缺陷,并且用戶被騙點(diǎn)擊了利用該漏洞的鏈接,Internet Explorer也不會(huì)將該cookie發(fā)送給任何第三方。這樣的話,就保證了信息的安全。
注意,為了降低跨站點(diǎn)腳本攻擊帶來(lái)的損害,通常需要將HTTP-only Cookie和其他技術(shù)組合使用。如果單獨(dú)使用的話,它無(wú)法全面抵御跨站點(diǎn)腳本攻擊。
支持HTTP-only Cookie的瀏覽器
如果Web 站點(diǎn)為不支持HTTP-only Cookie的瀏覽器建立了一個(gè)HTTP-only cookie的話,那么該cookie不是被忽略就是被降級(jí)為普通的可以通過(guò)腳本訪問(wèn)的cookie。這還是會(huì)導(dǎo)致信息容易被泄露。
對(duì)于公司內(nèi)部網(wǎng)中的web頁(yè)面,管理員可以要求所有用戶都是由支持HTTP-only Cookie的瀏覽器,這樣能保證信息不會(huì)由于跨站點(diǎn)腳本攻擊缺陷而泄露。
對(duì)于公共Web 站點(diǎn),由于需要支持各種各樣的瀏覽器,這時(shí)可以考慮使用客戶端腳本來(lái)確定不同訪問(wèn)者所使用的瀏覽器的版本。Web 站點(diǎn)可以通過(guò)向支持~的瀏覽器發(fā)送敏感信息以減輕跨站點(diǎn)腳本攻擊對(duì)Cookie的威脅。對(duì)于那些使用不支持HTTP-only Cookie的瀏覽器的訪問(wèn)者,可以限制為其提供的信息或功能,并要求升級(jí)他們的軟件。
當(dāng)確定Internet Explorer的版本時(shí),重要的是記住Internet Explorer 6 SP1 的用戶代理字符串跟Internet Explorer 6的用戶代理字符串是一樣的。客戶端腳本還必須使用navigator對(duì)象的appMinorVersion屬性檢測(cè)主版本號(hào),這樣才能確定出客戶端是否安裝了Internet Explorer 6 SP1。
參考資源:https://blog.csdn.net/Sunnyyou2011/article/details/80265477
集思廣益,僅供學(xué)習(xí),侵權(quán)即刪!!
總結(jié)
以上是生活随笔為你收集整理的前端随心记---------HTTP之HTTP-only的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: imageView图片放大缩小及旋转
- 下一篇: 老毛子固件使用说明