国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
實例:詳解跨站腳本攻擊的攻與防
  如果服務(wù)器對客戶的輸入不進(jìn)行有效驗證,黑客就會輸入一些惡意的HTML代碼,當(dāng)這些HTML代碼輸入是用于腳本程序時,黑客就能利用它來進(jìn)行破壞……

  【IT專家網(wǎng)獨家】很多時候當(dāng)人們談到黑客,總會想到無所不能,潛入目標(biāo)電腦,無所顧及的竊取和破壞數(shù)據(jù)。如今暴力破壞或炫耀技術(shù)已經(jīng)不再是黑客最樂于嘗試的活動,黑客,不應(yīng)該準(zhǔn)確的是網(wǎng)絡(luò)犯罪分子更樂意去借助黑客技術(shù),獲取經(jīng)濟(jì)上的利益。例如,攻擊訪問網(wǎng)站的客戶,記錄用戶信息,我們的服務(wù)器也成了他的幫兇。如今有一種攻擊大多數(shù)都發(fā)生在網(wǎng)站動態(tài)產(chǎn)生網(wǎng)頁的時侯,但黑客的目標(biāo)并不是你的網(wǎng)站,而是瀏覽網(wǎng)站的客戶,微軟稱這種攻擊為“跨站腳本攻擊”。

  認(rèn)識跨站腳本攻擊

  CERT曾警告:如果服務(wù)器對客戶的輸入不進(jìn)行有效驗證,黑客就會輸入一些惡意的HTML代碼,當(dāng)這些HTML代碼輸入是用于腳本程序時,黑客就能利用它來進(jìn)行破壞,如插入一些圖片或聲音等,同時可以干擾客戶正確瀏覽網(wǎng)頁。去年十分流行的流氓軟件,以及廣告彈出窗口,使得無數(shù)用戶對惡意軟件開始有了基本認(rèn)識。惡意的標(biāo)簽和腳本不是單純的惡作劇,他們甚至可以竊取資料和破壞系統(tǒng)。攻擊者可以利用腳本干擾或改變服務(wù)器數(shù)據(jù)的輸入,同時也可以攻擊客戶系統(tǒng)。而且你要知道,在你一邊使用服務(wù)器的時候,黑客的腳本程序也正在你服務(wù)器里安全的地方運行著。如果客戶對你的服務(wù)器非常信認(rèn),同樣他們也會信任那些惡意的SCRIPT代碼。甚至這個代碼是來自黑客的服務(wù)器的<CRIPT>或者<OBJECT>的形式。即使使用了防火墻也不能完全防止跨站腳本攻擊,這是由于如果生成惡意SCRIPT代碼的設(shè)備也使用了SSL,我們服務(wù)器的SSL是不能辨別出這些代碼來的。如何防御呢?讓我們來通過案例來分析。

  跨站腳本攻擊示例:

  根據(jù)CERT的資料,動態(tài)輸入大致有這幾種形式:URL參數(shù),表格元素,COOKISE以及數(shù)據(jù)請求。讓我們來分析一下只有兩個頁面的測試站點。

      第一頁使用一張表格或COOKIE來獲取用戶名:


 

  第二頁返回用戶名以示歡迎:

 

<%@ Language=VBScript %> <% Dim strUserName If Request.QueryString("userName")<> "" Then strUserName = Request.QueryString("userName") Else Response.Cookies("userName") = Request.Form("userName") strUserName = Request.Form("userName") End If %> <HTML> <HEAD></HEAD> <BODY> <H3 align="center">Hello: <%= strUserName %> </H3> </BODY> </HTML> 

 

  當(dāng)你正常常輸入文字時,一切都很正常。如果你輸入Script代碼:

 

<script>alert(Hello.;</script>

 

  JavaScript警告標(biāo)簽就會彈出來,在你下一次訪問時,這個警示標(biāo)簽同樣會出現(xiàn)。為什么會這樣?這主要是因為這個Script代碼在你第一次訪問的時后就已經(jīng)留在cookie中。這是一個簡單的跨站攻擊的范例。如果你認(rèn)為這是一個特殊情況,你也不妨到網(wǎng)上別的地方看看,親自試一下。筆者曾測試過很多許多專業(yè)網(wǎng)站,其中有微軟、電力系統(tǒng)等大型國有企業(yè),或多或少都存在這樣的跨站漏洞,很難想象如此大型的機構(gòu)都存在眾多的過濾疏漏,那其他小網(wǎng)站就更危機重重。

  用E-Mail進(jìn)行跨站腳本攻擊

  在列表服務(wù)器或郵件服務(wù)器中進(jìn)行跨站腳本攻擊是十分容易的。由于你經(jīng)常瀏覽某個網(wǎng)站,你就會對這個站點產(chǎn)生一定的忠誠度,因此在不知不覺中你就把瀏覽器的改成了總是信任這個動態(tài)網(wǎng)站內(nèi)容的設(shè)置。有許多網(wǎng)站會提供注冊數(shù)或廣告點擊來獲得收入,于是很多用戶會在電子郵件中鼓動用戶盡快訪問某個網(wǎng)站,甚至郵件中直接存有地址鏈接,假如這個鏈接的URL中的username參數(shù)中舔加script代碼。有些客戶就會在不知不覺中就點擊這個鏈接,于是用戶就會被欺騙,而郵件發(fā)送者會從中得到好處。那這是如何實現(xiàn)的?

  當(dāng)你點擊這個鏈接的時后,在鏈接里的script代碼就會引導(dǎo)你所用瀏覽器去下載指定的JavaScript程序并執(zhí)行它。攻擊者的Script檢查到你使用的是IE瀏覽器后,就著手下載ActiceX控件。由于你對一個網(wǎng)站可能已經(jīng)產(chǎn)生了忠誠的認(rèn)可,所以攻擊者的script代碼和Active控件就能在你機器上不受限制的運行。

  ActiveX攻擊說明

  W3C在《安全常見問題解答》中對ActiveX的安全問題作了比較詳盡的說明。Java applet對系統(tǒng)的控制受到嚴(yán)格限制。SUN開發(fā)它時就規(guī)定,只有那些對系統(tǒng)的安全不構(gòu)成威脅的操作才被允許運行。在另一方面,ActiveX對系統(tǒng)的操作就沒有嚴(yán)格地被限制。如果一但被下載,就可以象安裝的可執(zhí)行程序一樣運行。針對這一特點IE瀏覽器也作了某些限制,如對于那些不安全的站點,在它的默認(rèn)設(shè)置中就會不允許你進(jìn)行下載或者會給你警告的提示。正在基于ActiveX進(jìn)行開發(fā)的公司,如VeriSign公司,它們對ActiveX控件都給編了號。當(dāng)你在下載控件時,IE瀏覽器會給你警告并顯示它的可信籟程度,由用戶決定是否相信這個控件。但是,不得不承認(rèn)存在很多并不完全了解計算機使用的用戶,由于他們很難分辨哪一個插件到底是做什么的,所以往往會直接默認(rèn)許可。假如用戶長期瀏覽一個站點,如某某門戶網(wǎng)站,很多用戶會把其設(shè)置為默認(rèn),由于你對該站點的信任,在出現(xiàn)可用ActiveX控件下載的時候,絕大多數(shù)用戶會無所顧及的下載并運行。

  十六進(jìn)制編碼的ActiveX Script 攻擊

  假如一個用戶,即使是一個很有經(jīng)驗的用戶,要區(qū)分惡意標(biāo)簽和腳本都是一件非常困難的事,Script腳本能夠以十六進(jìn)制的形式把自己藏起來。例如一封看似完整的郵件,里面包含了以十六進(jìn)制偽造的URL參數(shù):sender=xxx.com。當(dāng)用戶點擊鏈接時,用戶的瀏覽器就會直接彈出警告窗口。

      講了三種攻擊形式,我們是不是應(yīng)該來看看如何防御了?

  跨站Script攻擊的防犯

  如何避免服務(wù)器受到跨站腳本攻擊

  雖然跨站腳本攻擊、社會工程學(xué)等一直很熱,但防止跨站腳本攻擊的技術(shù)正趨于完善。目前可采取這幾種方式來防止跨站腳本的攻擊:

      1.對動態(tài)生成的頁面的字符進(jìn)行編碼;

      2.對輸入進(jìn)行過濾和限制;

  3.使用HTML和URL編碼。

  對動態(tài)生成的頁面的字符進(jìn)行編碼

  所謂對動態(tài)生成的頁面的字符進(jìn)行編碼,其實是為了防止黑客更改你的字符設(shè)置而輕易地通過你的防線。如果我們的網(wǎng)站是個英語網(wǎng)站,這樣只要我們把字符編碼設(shè)成拉丁字符ISO-8859-1就行了,具體情況如下:

 

 

      過濾和限制所有輸入的數(shù)據(jù)

  當(dāng)用戶在進(jìn)行登錄的時侯,不要讓那些特殊的字符也輸入進(jìn)去。因此我們可在ONSUBMIT方法中加入JAVASCRIPT程序來完成這個功能。例如,我們限制最多只能輸入15個字符,這樣可以阻止那些較長的script的輸入。微軟提供了一個簡短的Javascript程序來完成對輸入數(shù)據(jù)的過濾。結(jié)合上面的實例,我們來看如下代碼:

 

 

      用這個辦法,可以過濾在輸入中含有 % < > [ ] { } ; & + - " ( ) 的這些字符。

  使用HTML和URL編碼

  盡管使用過濾和限制輸入的辦法是一種非常重要用防御手段,但卻不是萬能的。針對某些特殊情況,如URL的參數(shù)直接放在郵件中,我們不得不采取一種更有力的安全措施。如我們用的ASP,解決起來相對容易些,只要對動態(tài)生成的頁面進(jìn)行HTML和URL編碼就OK。針對我們例子中的情況,在第一輸入頁中我們對redirect URL作了如下改動:

 

strRedirectUrl = strRedirectUrl & _ server.URLEncode(Response.Cookies("userName"))

 

  在執(zhí)行頁中我們加入:

 

strUserName =server.HTMLEncode(Request.QueryString("userName")) 

strUserName =server.HTMLEncode(Request.Form("userName")) 

 

      微軟推薦對所有動態(tài)頁面的輸入和輸出都應(yīng)進(jìn)行編碼,甚至在對數(shù)據(jù)庫數(shù)據(jù)的存入和取出也應(yīng)如此,這樣可以在很大程度上避免跨站腳本攻擊。

  要做到這些還要在Page1.asp中加入:

 

 

  Page2.asp中加入如:

 

 

      現(xiàn)在由于這種攻擊受到有效的防制,惡意的標(biāo)簽和腳本被編碼,他們就被以文字的形式顯現(xiàn)了出來。我們也可增加一個IIS組件用于過濾所有從動態(tài)輸入中的特殊字符。對于那些已經(jīng)做好的網(wǎng)站,采用這種辦法來防止跨站腳本攻擊很容易實現(xiàn)。我們的這個控件能攔截來自ASP頁面的REQUEST目標(biāo),可對表格、cookie、請求字符串和程序的內(nèi)容進(jìn)行檢測。我們也可以通過編寫log文件的方法把統(tǒng)計數(shù)據(jù)加入這個組件中。每當(dāng)一個客戶輸入一個非法字符時,這個組件會記下它的IP地址和時間。我們只需采取一些簡單的設(shè)置就能有效地阻止跨站腳本的攻擊。除了以上所說的三種方法外,微軟和CERT還強烈推薦使用一種他們稱之為“sanity check”的方法。假設(shè)有個輸入窗口只允許輸入數(shù)字,我們就限定它只允許0-9數(shù)字的輸入。微軟和CERT所采用的這種對輸入的字符進(jìn)行限定的辦法要比單獨的采用過濾特殊字符要好得多,采用了這些措施后你就能讓那些參觀你網(wǎng)站的客戶在訪問你網(wǎng)站時受到保護(hù)。

  如何免受黑客攻擊瀏覽器

  當(dāng)你在網(wǎng)上沖浪時,怎樣來避免受到攻擊呢?在我們所舉的例子中,即使用戶注意了自己的瀏覽習(xí)慣,也不能完全避免在網(wǎng)上遭到黑客的襲擊。具有諷刺的是,大多數(shù)的危險都來自于我們最信任的網(wǎng)站。如果要讓網(wǎng)站一定不出問題,你只好不下載任何動態(tài)內(nèi)容或者任何cookie。微軟也警告用戶應(yīng)把瀏覽器的Active Script設(shè)置成嚴(yán)格限制的狀態(tài)并把Email也設(shè)成嚴(yán)格限制的接收模式。同時在點擊郵件中的鏈接時,一定要加倍小心。

  結(jié)論

  無論我們是從事何種工作,安全問題只會變得越來越復(fù)雜化,我們必須提高安全防范意識。在CERT公司的一篇報告中曾提到:“跟據(jù)目前的研究顯示,每個在英特網(wǎng)上具有域名的網(wǎng)站平均一年被黑客至少攻擊一次。” 對服務(wù)器來說那怕只是一次這種攻擊也是不能承受的。跨站腳本攻擊有人并不認(rèn)識他是一種攻擊手段,有人僅僅認(rèn)為這是玩笑,但是誰也不能忽視其隱藏的威脅。隨著網(wǎng)絡(luò)釣魚行為的更加頻繁,隨著黑客相關(guān)知識更容易獲取,每一個從事安全開發(fā)的人都必須提高警惕

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
安全代碼審查.跨站點腳本攻擊(XSS)
Web應(yīng)用進(jìn)行XSS漏洞測試
HTML中顯示特殊字符,如尖括號 “<”,''>''等等
同一頁面引入多個JS文件的編碼問題 - birdshome - 博客園
解析Cookie欺騙實現(xiàn)過程及具體應(yīng)用
Js的Url中傳遞中文參數(shù)亂碼,如何獲取Url中參數(shù)問題
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服