自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用HTTP-only Cookie緩解XSS之痛

原創(chuàng)
安全
在Web安全領(lǐng)域,跨站腳本攻擊時(shí)最為常見的一種攻擊形式,也是長久以來的一個(gè)老大難問題,而本文將向讀者介紹的是一種用以緩解這種壓力的技術(shù),即HTTP-only cookie。

【51CTO.com 獨(dú)家特稿】在Web安全領(lǐng)域,跨站腳本攻擊時(shí)最為常見的一種攻擊形式,也是長久以來的一個(gè)老大難問題,而本文將向讀者介紹的是一種用以緩解這種壓力的技術(shù),即HTTP-only cookie。

我們首先對HTTP-only cookie和跨站腳本攻擊做了簡單的解釋,然后詳細(xì)說明了如何利用HTTP-only cookie來保護(hù)敏感數(shù)據(jù),最后介紹了實(shí)現(xiàn)HTTP-only cookie時(shí)確定瀏覽器版本的具體問題。

一、XSS與HTTP-only Cookie簡介

跨站點(diǎn)腳本攻擊是困擾Web服務(wù)器安全的常見問題之一??缯军c(diǎn)腳本攻擊是一種服務(wù)器端的安全漏洞,常見于當(dāng)把用戶的輸入作為HTML提交時(shí),服務(wù)器端沒有進(jìn)行適當(dāng)?shù)倪^濾所致??缯军c(diǎn)腳本攻擊可能引起泄漏Web 站點(diǎn)用戶的敏感信息。為了降低跨站點(diǎn)腳本攻擊的風(fēng)險(xiǎn),微軟公司的Internet Explorer 6 SP1引入了一項(xiàng)新的特性。

這個(gè)特性是為Cookie提供了一個(gè)新屬性,用以阻止客戶端腳本訪問Cookie。

像這樣具有該屬性的cookie被稱為HTTP-only cookie。包含在HTTP-only cookie中的任何信息暴露給黑客或者惡意網(wǎng)站的幾率將會大大降低。下面是設(shè)置HTTP-only cookie的一個(gè)報(bào)頭的示例:

Set-Cookie: USER=123; expires=Wednesday, 09-Nov-99 23:12:40 GMT; HttpOnly

上面我們介紹了HTTP-only Cookie;下面我們開始向讀者介紹跨站點(diǎn)腳本攻擊、允許通過腳本訪問的cookie所帶來的潛在危險(xiǎn)以及如何通過HTTP-only來降低跨站點(diǎn)腳本攻擊的風(fēng)險(xiǎn)。   

跨站點(diǎn)腳本攻擊是一種服務(wù)器端常見的安全漏洞,它使得黑客可以欺騙用戶從而導(dǎo)致用戶在某個(gè)Web 站點(diǎn)上的敏感信息的泄漏。下面通過一個(gè)簡單的示例來解釋一個(gè)跨站點(diǎn)腳本攻擊的相關(guān)步驟。

二、跨站點(diǎn)腳本攻擊示例

為了解釋跨站點(diǎn)腳本攻擊是如何被黑客利用的,我們假想了下面的一個(gè)例子:

A證券公司運(yùn)行了一個(gè)Web 站點(diǎn),該站點(diǎn)允許您跟蹤某股票的最新價(jià)格。為了提高用戶體驗(yàn),登錄A證券公司的Web 站點(diǎn)之后,你將被重定向到www.azhengquan.com/default.asp?name = < script > evilScript()< / script >張三,并且有一個(gè)服務(wù)器端腳本生成一個(gè)歡迎頁面,內(nèi)容為“歡迎您回來,張三!”。

你的股票數(shù)據(jù)被存放在一個(gè)數(shù)據(jù)庫中,并且Web 站點(diǎn)會在你的計(jì)算機(jī)上放置一個(gè)cookie,其中包含了對這個(gè)數(shù)據(jù)庫非常重要的數(shù)據(jù)。每當(dāng)你訪問A證券公司站點(diǎn)時(shí),瀏覽器都會自動發(fā)送該cookie。

一個(gè)黑客發(fā)現(xiàn)A證券公司公司的Web 站點(diǎn)存在一個(gè)跨站點(diǎn)腳本攻擊缺陷,所以他決定要利用這點(diǎn)來收集你所持股票的名稱等敏感信息。黑客會您你發(fā)送一封電子郵件,聲稱您中獎(jiǎng)了,并且需要點(diǎn)擊某個(gè)鏈接如“點(diǎn)擊這里”來領(lǐng)取獎(jiǎng)品。注意,該鏈接將超鏈接到www.azhengquan.com/default.asp?name=< script >evilScript()< / script > 當(dāng)您點(diǎn)擊這個(gè)鏈接,映入眼簾您的將是“歡迎您回來!”—— 等等,您的姓名哪里去了?事實(shí)上,單擊電子郵件內(nèi)的鏈接之后,你實(shí)際上就是在通知A證券公司公司的Web 站點(diǎn),你的姓名是< script  > evilScript()<  /script >。Web服務(wù)器把用這個(gè)“名字”生成的HTML返回給你,但是你的瀏覽器會把這個(gè)“名字”作為腳本代碼解釋,腳本執(zhí)行后便出現(xiàn)了我們前面看到的一幕。一般情況下,支持客戶端腳本是瀏覽器的典型功能之一。如果這個(gè)腳本命令瀏覽器向黑客的計(jì)算機(jī)發(fā)回一個(gè)cookie,即使這個(gè)cookie包含有您的股票的有關(guān)信息,您的瀏覽器也會老老實(shí)實(shí)地執(zhí)行。最后,那些來自A證券公司的Web 站點(diǎn)的指令獲取了那個(gè)包含敏感信息的cookie。

下面是跨站腳本攻擊的示意圖,它詳細(xì)的展示了攻擊的五個(gè)步驟。首先,用戶點(diǎn)擊了黑客發(fā)來的電子郵件中的一個(gè)嵌入的鏈接(第1步)。由于跨站點(diǎn)腳本攻擊缺陷的原因,這樣會導(dǎo)致用戶的瀏覽器向Web 站點(diǎn)發(fā)送一個(gè)請求(第2步);服務(wù)器端根據(jù)該請求會生成一個(gè)包含惡意腳本的響應(yīng),并將其發(fā)回給用戶的瀏覽器(第3步)。當(dāng)用戶的機(jī)器執(zhí)行返回的惡意代碼時(shí)(第4步),就會將用戶的敏感數(shù)據(jù)發(fā)送給黑客的計(jì)算機(jī)(第5步)。

圖1

我們可以看到,這個(gè)過程只需要用戶單擊了一個(gè)鏈接,然后就會有指令發(fā)送給Web服務(wù)器,然后Web服務(wù)器生成一個(gè)嵌入惡意腳本的網(wǎng)頁;瀏覽器運(yùn)行這個(gè)來自受信任的源的腳本,卻致使信息泄漏給黑客的計(jì)算機(jī)。跨站點(diǎn)腳本攻擊有許多不同的形式,這里只是其中的一種。

三、用HTTP-only Cookie保護(hù)數(shù)據(jù)

為了緩解跨站點(diǎn)腳本攻擊帶來的信息泄露風(fēng)險(xiǎn),Internet Explorer 6 SP1為Cookie引入了一個(gè)新屬性。這個(gè)屬性規(guī)定,不許通過腳本訪問cookie。使用HTTP-only Cookie后,Web 站點(diǎn)就能排除cookie中的敏感信息被發(fā)送給黑客的計(jì)算機(jī)或者使用腳本的Web站點(diǎn)的可能性。

Cookie通常是作為HTTP 應(yīng)答頭發(fā)送給客戶端的,下面的例子展示了相應(yīng)的語法(注意,HttpOnly屬性對大小寫不敏感):

Set-Cookie: =[; =]
[; expires=][; domain=]
[; path=][; secure][; HttpOnly]

即使應(yīng)答頭中含有HttpOnly屬性,當(dāng)用戶瀏覽有效域中的站點(diǎn)時(shí),這個(gè)cookie仍會被自動發(fā)送。但是,卻不能夠在Internet Explorer 6 SP1中使用腳本來訪問該cookie,即使起初建立該cookie的那個(gè)Web 站點(diǎn)也不例外。這意味著,即使存在跨站點(diǎn)腳本攻擊缺陷,并且用戶被騙點(diǎn)擊了利用該漏洞的鏈接,Internet Explorer也不會將該cookie發(fā)送給任何第三方。這樣的話,就保證了信息的安全。
注意,為了降低跨站點(diǎn)腳本攻擊帶來的損害,通常需要將HTTP-only Cookie和其他技術(shù)組合使用。如果單獨(dú)使用的話,它無法全面抵御跨站點(diǎn)腳本攻擊。

四、支持HTTP-only Cookie的瀏覽器

如果Web 站點(diǎn)為不支持HTTP-only Cookie的瀏覽器建立了一個(gè)HTTP-only cookie的話,那么該cookie不是被忽略就是被降級為普通的可以通過腳本訪問的cookie。這還是會導(dǎo)致信息容易被泄露。

對于公司內(nèi)部網(wǎng)中的web頁面,管理員可以要求所有用戶都是由支持HTTP-only Cookie的瀏覽器,這樣能保證信息不會由于跨站點(diǎn)腳本攻擊缺陷而泄露。

對于公共Web 站點(diǎn),由于需要支持各種各樣的瀏覽器,這時(shí)可以考慮使用客戶端腳本來確定不同訪問者所使用的瀏覽器的版本。Web 站點(diǎn)可以通過向支持~的瀏覽器發(fā)送敏感信息以減輕跨站點(diǎn)腳本攻擊對Cookie的威脅。對于那些使用不支持HTTP-only Cookie的瀏覽器的訪問者,可以限制為其提供的信息或功能,并要求升級他們的軟件。

當(dāng)確定Internet Explorer的版本時(shí),重要的是記住Internet Explorer 6 SP1 的用戶代理字符串跟Internet Explorer 6的用戶代理字符串是一樣的??蛻舳四_本還必須使用navigator對象的appMinorVersion屬性檢測主版本號,這樣才能確定出客戶端是否安裝了Internet Explorer 6 SP1。

五、小結(jié)

在Web安全領(lǐng)域,跨站腳本攻擊時(shí)最為常見的一種攻擊形式,也是長久以來的一個(gè)老大難問題,而本文將向讀者介紹一種用以緩解這種壓力的技術(shù),即HTTP-only cookie。我們首先對HTTP-only cookie和跨站腳本攻擊做了簡單的解釋,然后詳細(xì)說明了如何利用HTTP-only cookie來保護(hù)敏感數(shù)據(jù),最后介紹了實(shí)現(xiàn)HTTP-only cookie時(shí)確定瀏覽器版本的具體問題。

【51CTO.COM 獨(dú)家特稿,轉(zhuǎn)載請注明出處及作者!】

【編輯推薦】

  1. 錦上添花:為最佳JSP服務(wù)器Resin加上SSL認(rèn)證 
  2.  基于IE的MIME sniffing功能的跨站點(diǎn)腳本攻擊 
  3. 安全專家詳談:對付惡意軟件的策略及方法
  4.  
  5. 安全公司稱俄羅斯已成為垃圾郵件超級大國
  6. 諾頓再次誤升級 廠商可無視用戶許可?
責(zé)任編輯:王文文 來源: 51CTO.com
相關(guān)推薦

2013-04-19 10:38:30

2013-11-08 11:15:54

2015-08-21 17:02:08

2013-06-04 09:46:17

聯(lián)調(diào)開發(fā)團(tuán)隊(duì)

2013-03-26 11:20:05

創(chuàng)業(yè)創(chuàng)業(yè)者創(chuàng)業(yè)失敗

2022-02-15 15:36:24

區(qū)塊鏈倉儲技術(shù)

2017-05-16 14:25:28

2016-02-15 10:18:11

2014-09-22 15:33:54

2018-08-06 06:57:49

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)設(shè)備

2016-09-06 22:05:41

HttpCookieWeb

2018-04-19 14:11:50

2016-09-19 14:23:11

2018-05-23 07:03:48

2018-04-18 07:34:58

2009-07-22 15:47:05

軟件質(zhì)量管理

2017-02-17 09:10:26

2013-05-03 13:22:40

2022-02-15 13:50:31

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2009-07-18 13:26:48

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號