1)ClickJackinghtml
ClickJacking點擊劫持,這是一種視覺上的欺騙。前端
攻擊者使用一個透明的、不可見的iframe,覆蓋在網頁的某個位置上,誘使用戶點擊iframe。html5
2)TapJackingweb
如今移動設備的使用率愈來愈高,針對移動設備的特色,衍生出了TapJacking(觸屏劫持)。ajax
手機上的屏幕範圍有限,手機瀏覽器爲了節約空間,能夠隱藏地址欄,手機上的視覺欺騙會更加容易實施。跨域
1. 第一張中最上方顯示了瀏覽器地址欄,同時攻擊者在頁面中畫出了一個假的地址欄;瀏覽器
2. 第二張中真實的瀏覽器地址欄已經自動隱藏了,此時頁面中只剩下假的地址欄;安全
3. 第三張中是瀏覽器地址欄被正常隱藏的狀況。服務器
這種針對視覺效果的攻擊能夠被利用進行釣魚和欺詐。網絡
3)X-Frame-Options
針對傳統的界面劫持,經過禁止iframe來防範。
HTTP頭中有一個響應頭X-Frame-Options,有三個值能夠選擇:
1. DENY:該頁面不容許加載任何 iframe頁面。
2. SAMEORIGIN:該頁面能夠加載相同域名的 iframe頁面。
3. ALLOW-FROM uri:該頁面能夠加載指定來源的 iframe頁面。
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('?').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 = 'worker.js';//封裝了ajax請求的腳本 var target = 'http://news.qq.com/photo.shtml';//要攻擊的網址 //可實例化多個Web Worker var workers = []; for (i = 0; i < 1; i++) { workers[i] = new Worker(worker_loc); workers[i].postMessage(target);//跨域消息傳遞 }
demo源碼下載:
http://download.csdn.net/download/loneleaf1/9747052
參考資料: