成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于跨域攻擊和網(wǎng)絡(luò)信標

ixlei / 1876人閱讀

摘要:四跨域攻擊跨域攻擊可以理解為誘導受害者訪問非法網(wǎng)站,黑客利用受害者的會話信息模擬請求,以達到篡改數(shù)據(jù)的目的。我們在百度上搜索一些關(guān)鍵字之后,訪問其他網(wǎng)站時例如會發(fā)現(xiàn),為何我剛剛搜索的關(guān)鍵字圖片會在網(wǎng)頁上顯示那很有可能放置了百度的腳本代碼。

本人工作中偶爾會和瀏覽器打交道,也遇到過一些坑,在此分享一下網(wǎng)頁跨域訪問的相關(guān)場景和知識,希望對讀者有幫助。
本文來自于我的博客網(wǎng)站:www.51think.net

一、什么是跨域訪問

凡是與主站地址的域名、端口、協(xié)議不一致的其他請求,都可以認為是跨域訪問。例如某網(wǎng)站的主站地址是https://www.abc.com,但網(wǎng)頁又...(地址是https://img.abc.com),這就是一種跨域訪問。

二、瀏覽器的同源策略

所謂的同源策略是瀏覽器所遵循的一種安全約定。其限制了來自不同源的document或者腳本對當前的document讀取或設(shè)置某些屬性。具體限制如下:
跨源網(wǎng)絡(luò)訪問:AJAX請求。
跨源 DOM 訪問:DOM。
跨源腳本API訪問: iframe.contentWindow, window.parent, window.open 和 window.opener

   如果沒有這些限制,那我們就可以肆無忌憚的破壞其他網(wǎng)站的網(wǎng)頁了。  
三、如何進行跨域訪問

跨域訪問不是跨域攻擊,業(yè)務(wù)上我們的確有跨域訪問的需要。
#### 1、通過標簽的src或者href屬性。
例如< script >、< img >、< iframe >、< link >,訪問靜態(tài)資源文件雖然是跨域,但不受同源策略限制,因為使用的是標簽訪問。src屬性訪問的地址是一次性的get訪問,且是主站主動設(shè)置,相對安全。

2、form表單提交。

form表單提交到其他域也是被允許的。因為form提交意味著跳轉(zhuǎn)到新的站點,是一個有去無回的頁面跳轉(zhuǎn),不存在對原站點的腳本操作。

3、jsonp訪問。

這一般是跨域訪問的常用手段,jsonp可以幫助我們從另一方站點獲取數(shù)據(jù),并作用于本地站點的頁面。這是本地站點開發(fā)人員的主動行為。jsonp跨域使用的是script標簽的跨域功能,通過src屬性訪問第三方系統(tǒng)并獲取返回數(shù)組作用于本地函數(shù)中。假設(shè)在ablog.com的頁面中訪問bblog.com的服務(wù),可以在頁面中寫入如下代碼,callback參數(shù)定義是回調(diào)函數(shù):

      

     < script src="http://bblog.com:8083/remote?callback=jsonhandle">               
     

bblog.com的服務(wù)端代碼如下,需要按照回調(diào)函數(shù)名+(json數(shù)據(jù))的格式返回:

@GetMapping("/remote")
 @ResponseBody
 public String remote(HttpServletRequest request, Model model) {
              String callback=request.getParameter("callback");
              String jsonpStr = callback + "(" + "{"age" : 15,"name": "jack",}"+ ")";
              return jsonpStr;
        }
4、cors跨資源共享。

CORS 需要瀏覽器和服務(wù)器同時支持。目前,所有瀏覽器都支持該功能,IE 瀏覽器不能低于 IE10。

四、跨域攻擊

跨域攻擊可以理解為:誘導受害者訪問非法網(wǎng)站,黑客利用受害者的會話信息模擬請求,以達到篡改數(shù)據(jù)的目的。由此看來,跨域攻擊有幾個先決條件:

1、要有頁面入口,供受害者點擊或者頁面自動加載。 2、攻擊請求可模擬,黑客對目標網(wǎng)站參數(shù)進行了深入的研究,從而進行模擬。

第一點的頁面入口非常重要,如何在目標網(wǎng)站(地址:http://ablog.com:8080)植入攻擊者的代碼?假設(shè)目標網(wǎng)站有評論功能,攻擊者可以將自己的代碼輸入到評論區(qū),如果目標網(wǎng)站沒有XSS防御,則會將攻擊者的代碼以html的方式顯示在網(wǎng)頁上,這也就完成了第一點,提供了攻擊入口。例如攻擊者可以在評論區(qū)輸入以下內(nèi)容:

 java速成,點我免費領(lǐng)取

或者如下內(nèi)容:

     
        
 

將這段代碼輸入到評論區(qū)并顯示,依然可以誘導受害者點擊,完成post請求。攻擊者也可以將更復雜的邏輯封裝在自己搭建的網(wǎng)站中,假設(shè)黑客網(wǎng)站地址是http://bblog.com:8083,攻擊者將參數(shù)傳遞給自己的服務(wù)器,實現(xiàn)跨域攻擊,在目標網(wǎng)站ablog.com的評論區(qū)中留下如下代碼:

 java速成,點我免費領(lǐng)取  
 在黑客網(wǎng)站bblog.com里模擬post請求到ablog.com:


 

由于受害者在ablog.com中的會話仍然保持,這個模擬請求會帶上受害者的會話信息,進行刪除操作,而對于服務(wù)器端來說是無感的。在bblog.com里模擬post請求到ablog.com,為何沒有被跨域攔截?上文有提到過,form表單提交是沒有跨域限制的,這為跨域攻擊也提供了便利。

  上述攻擊方式還不算隱蔽,畢竟需要受害者點擊觸發(fā)按鈕,還需要頁面跳轉(zhuǎn),太low。我們可以使用一個影藏的iframe完成攻擊,使得攻擊操作神不知鬼不覺。在網(wǎng)站ablog.com評論區(qū)中植入如下代碼:
   
   form模擬提交的部分依然放在bblog.com中,使用腳本自動執(zhí)行。部分代碼如下:     

 
 
    

在bblog.com中如果使用ajax來模擬請求攻擊ablog.com會被瀏覽器攔截,ajax腳本如下:

 function dianwoSub() {
 $.ajax({
            type: "post",
            url: "http://ablog.com:8080/admin/comments/delete",
            data: $("#dianwoForm").serialize(),
            async: false,
            dataType: "json",
            success: function (result) {
            alert(" delete ok");
            }
    });
       }

運行時,瀏覽器會報如下錯誤,即ablog和blog非同源,跨域訪問被限制:

五、如何避免跨域攻擊 1、網(wǎng)站系統(tǒng)一定要有xss防御。

用戶的任何輸入必須要經(jīng)過后臺的校驗,如果出現(xiàn)非法字符一定要攔截,將代碼植入入口堵死。

2、系統(tǒng)請求優(yōu)先使用post提交。

get提交會降低攻擊門檻。

3、refer來源判斷。

網(wǎng)站系統(tǒng)在接受請求時,判斷請求來源是否是可信任的,如果是非法的則需要攔截。

4、增加驗證碼校驗。

在做增刪改操作時,強行讓用戶再次與后臺交互,這能很大程度上避免攻擊,但是影響用戶體驗。

5、token校驗。

用戶在訪問某一網(wǎng)頁時,后端生成一個隨機加密字符串放到session中,用戶再次請求時攜帶此token,后端對比token是否正確,不正確則攔截請求。

六、網(wǎng)絡(luò)信標

網(wǎng)絡(luò)信標又名網(wǎng)絡(luò)臭蟲,通過植入第三方代碼來收集訪問者信息。例如在ablog.com網(wǎng)站中植入如下代碼:

       

大小僅為一個像素,用戶很難發(fā)現(xiàn)。凡是打開植入此代碼的網(wǎng)頁,都會訪問bblog.com,bblog.com后臺能夠收集到如下信息:

   通過以上信息,我們可以給用戶設(shè)置一個唯一標記,并寫入到cookie中,例如bloguser=user_127.0.0.11540367865328。后端同時將此標記以及對應(yīng)信息保存到數(shù)據(jù)庫中,這樣可以跟蹤某一特定用戶的訪問路徑。假設(shè)一個集團公司的業(yè)務(wù)范圍非常廣,其信息化系統(tǒng)包含多個二級域名,比如注冊頁面是login.blog.com,充值頁面是deposit.xyz.com,購物頁面是shopping.abc.com等,這些域名的cookie是無法共享的,這時候可以采取網(wǎng)絡(luò)信標的方式,在所有主頁上均植入上述代碼,通過第三方cookie的方式,將訪問者信息全部串聯(lián)起來。        
     網(wǎng)絡(luò)信標的另外一種使用場景是廣告推薦。百度的廣告聯(lián)盟就是很好的例子。我們在百度上搜索一些關(guān)鍵字之后,訪問其他網(wǎng)站時(例如CSDN)會發(fā)現(xiàn),為何我剛剛搜索的關(guān)鍵字圖片會在CSDN網(wǎng)頁上顯示?那CSDN很有可能放置了百度的腳本代碼。用戶在百度上進行搜索之后,百度將搜索關(guān)鍵字寫入到用戶的cookie信息中,CSDN內(nèi)置了百度的廣告代碼,這個代碼會訪問百度服務(wù)器,同時會帶上百度之前設(shè)置的cookie,百度后臺根據(jù)關(guān)鍵字來響應(yīng)相關(guān)圖片或者文字鏈接,達到精準投放廣告的效果。  
    現(xiàn)在我們來模擬一下百度廣告聯(lián)盟的效果。假設(shè)bblog.com就是百度系統(tǒng),我們模擬一個搜索頁面,并搜索關(guān)鍵字“手機”:  
 ![](http://51think.net/upload/2018/11/253mn0n9e6ic4oesipd8gmqcqv.jpg)

bblog.com的后端將手機寫入到cookie,key為sosuoPara:

    setCookie(response,"sosuoPara",sosuoPara,60*60);  
     bblog.com的合作網(wǎng)站ablog.com內(nèi)置了bblog.com廣告代碼:  

 
廣告頁

這段廣告代碼的后端邏輯是取出cookie信息,得到搜索關(guān)鍵字,后端進行匹配處理,返回給前端廣告。這時候我們看一下ablog.com的主頁廣告,見如下紅框位置:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100902.html

相關(guān)文章

  • 關(guān)于跨域攻擊網(wǎng)絡(luò)信標

    摘要:四跨域攻擊跨域攻擊可以理解為誘導受害者訪問非法網(wǎng)站,黑客利用受害者的會話信息模擬請求,以達到篡改數(shù)據(jù)的目的。我們在百度上搜索一些關(guān)鍵字之后,訪問其他網(wǎng)站時例如會發(fā)現(xiàn),為何我剛剛搜索的關(guān)鍵字圖片會在網(wǎng)頁上顯示那很有可能放置了百度的腳本代碼。 本人工作中偶爾會和瀏覽器打交道,也遇到過一些坑,在此分享一下網(wǎng)頁跨域訪問的相關(guān)場景和知識,希望對讀者有幫助。本文來自于我的博客網(wǎng)站:www.51th...

    dackel 評論0 收藏0
  • [雜談]了解一些額外知識,讓前端開發(fā)錦上添花

    摘要:對的請求,也是要有一個了解,比如協(xié)議,請求方式,請求過程,結(jié)果狀態(tài)碼等。教程協(xié)議詳解經(jīng)典面試題一個故事講完響應(yīng)狀態(tài)碼上面提到響應(yīng)狀態(tài)碼,在這里也簡單寫下。 勸了別人無數(shù)次,讓別人喝了雞湯,幫別人填坑,自己卻掉了坑 1.前言 在前端學習里面,很多人都是注重學習代碼(html,css,js)?;蛘呤且恍┛蚣?,庫(jquery,vue,react),或者是各種工具(webpack,gulp)...

    vvpvvp 評論0 收藏0
  • [雜談]了解一些額外知識,讓前端開發(fā)錦上添花

    摘要:對的請求,也是要有一個了解,比如協(xié)議,請求方式,請求過程,結(jié)果狀態(tài)碼等。教程協(xié)議詳解經(jīng)典面試題一個故事講完響應(yīng)狀態(tài)碼上面提到響應(yīng)狀態(tài)碼,在這里也簡單寫下。 勸了別人無數(shù)次,讓別人喝了雞湯,幫別人填坑,自己卻掉了坑 1.前言 在前端學習里面,很多人都是注重學習代碼(html,css,js)?;蛘呤且恍┛蚣埽瑤欤╦query,vue,react),或者是各種工具(webpack,gulp)...

    張率功 評論0 收藏0
  • [雜談]了解一些額外知識,讓前端開發(fā)錦上添花

    摘要:對的請求,也是要有一個了解,比如協(xié)議,請求方式,請求過程,結(jié)果狀態(tài)碼等。教程協(xié)議詳解經(jīng)典面試題一個故事講完響應(yīng)狀態(tài)碼上面提到響應(yīng)狀態(tài)碼,在這里也簡單寫下。 勸了別人無數(shù)次,讓別人喝了雞湯,幫別人填坑,自己卻掉了坑 1.前言 在前端學習里面,很多人都是注重學習代碼(html,css,js)?;蛘呤且恍┛蚣?,庫(jquery,vue,react),或者是各種工具(webpack,gulp)...

    zhichangterry 評論0 收藏0
  • 基于 SimpleChain Beta 的跨鏈交互與持續(xù)穩(wěn)態(tài)思考

    摘要:區(qū)塊鏈擴展性迷局比特幣作為第一個區(qū)塊鏈應(yīng)用與運行到目前為止最被信任的公鏈,其擴展性問題卻持續(xù)被作為焦點貫穿著整個鏈的發(fā)展周期。當然區(qū)塊鏈與也可以保留回執(zhí),用于驗證后續(xù)跨鏈交易的持續(xù)性。 區(qū)塊鏈擴展性迷局 比特幣作為第一個區(qū)塊鏈應(yīng)用與運行到目前為止最被信任的公鏈,其擴展性問題卻持續(xù)被作為焦點貫穿著整個鏈的發(fā)展周期。事實上,在2009年1月4日比特幣出現(xiàn)的那一天到2010年10月1日之間,...

    shery 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<