首頁  >  文章  >  web前端  >  介面操作劫持與HTML5安全的圖文詳解

介面操作劫持與HTML5安全的圖文詳解

黄舟
黄舟原創
2017-04-24 10:46:072851瀏覽

一、介面操作劫持

1)ClickJacking

#ClickJacking點擊劫持,這是一種視覺上的欺騙。

攻擊者使用一個透明的、看不見的iframe,覆蓋在網頁的某個位置上,誘使用戶點擊iframe。

2)TapJacking

現在行動裝置的使用率越來越高,針對行動裝置的特點,衍生出了TapJacking(觸控螢幕劫持)。

手機上的螢幕範圍有限,手機瀏覽器為了節省空間,可以隱藏網址列,手機上的視覺欺騙會更容易實作。

1. 第一張中最上方顯示了瀏覽器網址欄,同時攻擊者在頁面中畫出了一個假的網址列;

2. 第二張中真實的瀏覽器網址列已經自動隱藏了,此時頁面中只剩下假的網址列;

3. 第三張中是瀏覽器網址列被正常隱藏的情況。

這種針對視覺效果的攻擊可以被利用來釣魚和詐欺。

3)X-Frame-Options

#針對傳統的介面劫持,透過禁止iframe來防範。

HTTP頭中有一個回應頭##X-Frame-Options#,有三個值可以選擇:

1. DENY:該頁

不允許載入任何iframe頁面。

2. SAMEORIGIN:此頁面可以載入

相同網域的 iframe頁面。

3. ALLOW-FROM uri:此頁面可以載入

指定來源的 iframe頁面。

二、HTML5安全性

HTML5中

新增的一些標籤和屬性,使得XSS等Web攻擊產生了新的變化,在HTML5 Security Cheatsheet中總結了這些變更。

1)隱藏URL惡意程式碼

#反射型XSS中,會將惡意程式碼寫在URL參數中,這樣的話,使用者也能看到惡意程式碼,例如下面的連結:

http://www.csrf.net/csrf.html?id=<script>111</script>

可以透過window.history來操作

瀏覽器的歷史記錄

pushState()有三個參數:狀態物件、標題,可選的URL位址。

history.pushState({},"", location.href.split(&#39;?&#39;).shift());

執行上面那段程式碼後就會

將參數隱藏

新的URL位址就是下面這個:

「pushState」還可以

偽造瀏覽器歷史記錄

for(i=0; i<10; i++)
    history.pushState({},"", "/"+i+".html");

2)HTML5下的殭屍網路

殭屍網路(Botnet)是指在大量的電腦中植入特定的惡意程序,使控制者能夠透過若干電腦直接向其他電腦發送指令,進行網路攻擊。

基於Web前端的殭屍網路可以用作DDOS攻擊,這裡涉及

Web Worker技術CORS處理機制,再透過Web蠕蟲傳播。

Web Worker是一種多執行緒機制,可以非同步執行惡意

JS程式碼,而不影響使用者在瀏覽器中的正常運作。

CORS處理機制工作在瀏覽器層面,如果伺服器不允許跨站,瀏覽器將攔截伺服器回傳的結果,也就是說跨域請求,伺服器也會正常回應。

那么就可以事先写好一段异步请求的脚本(worker.js),然后通过Web Worker来执行这段脚本,不断的向目标服务器发起请求。

var worker_loc = &#39;worker.js&#39;;//封装了ajax请求的脚本
var target = &#39; 
//可实例化多个
Web Workervar workers = [];for (i = 0; i < 1; i++) {
      workers[i] = new Worker(worker_loc);
      workers[i].postMessage(target);//跨域消息传递}

以上是介面操作劫持與HTML5安全的圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn