点击按钮弹出iframe_WEB安全(四) :CSRF与点击劫持
跨站點請求偽造
CSRF是跨站點請求偽造,它的請求有兩個關鍵點,跨站點的請求與請求是偽造的,
從字面上看,跨站點的請求來源應該是其他站點,比如,目標網站接收到來源網站的惡意操作,但是,只要是惡意操作,即使是同源,也可以算作請求偽造,因為此操作并不是用戶的意愿
場景
當有兩個網站A和B的時候,目標A網站有一個刪除文章的功能,當我們請求的url為
www.a.com/blog/del?id=1用戶點擊刪除的時候。變會發出一個get請求,這樣便會刪掉一篇文章
然后攻擊者當A網站的用戶進行了登錄之后,誘騙A用戶打開b網站,然后執行如下代碼
<img src='www.a.com/blog/del?id=1' />這樣,攻擊就會發生,則會刪掉A網站的文章
對于CSRF攻擊,其中最重要的是,需要用戶登錄,然后被誘導到惡意網站,從而獲取到cookie的身份認證,然后進行相關惡意操作
那么,如果當用戶使用post提交呢,我們查看如下代碼
function new_form(){var f = document.createElement('form');document.body.appendChild(f);f.method='post';return f; }function create_elements(eform,ename,evalue){var e = document.createElement('input');eform.appendChild(e);e.type = 'text';e.name = enameif(!doucment,all){e.style.display = 'none';}else{e.style.display = 'block';e.style.width = '0px';e.style.height = '0px';}e.value = evaluereturn e; }var f = new_form(); create_elements(f,'tit','hi'); f.action = 'http://www.a.com/blog/add' f.submit();構建完成,當目標網站A的用戶被欺騙訪問的惡意網站時,一個跨域的post就會提交
危害
csrf的危害如下
如何防御
csrf能成功攻擊的根本原因是攻擊者能夠猜到所有的參數,所以出于這個原因,我們在防御的情況下,可以使用token,因為token在進行數據請求或者操作的時候,是會生成一個隨機數返回給客戶端,所以這個不固定的數字可以讓攻擊者很難猜到。但是token僅僅是預防csrf用的。如果攻擊者使用xss獲取到token,那么該方案就會失效。這樣的攻擊可以稱為xsrf
界面操作點擊劫持
界面操作劫持是一種基于視覺欺騙的web劫持攻擊,在正常的網頁操作按鈕上面,放入一個不可見的iframe,實際上用戶的操作行為被其不可見的框所劫持,然后執行惡意代碼
劫持分為以下三類
- 點擊劫持
- 拖放劫持
- 觸屏劫持
點擊劫持
那么首先點擊劫持首先的技術原理就是ifame+css樣式表,我們把iframe 放入 需要輸入的地方,然后再css中設置如下代碼
iframe{position:absolute;z-index:9999;opacity:0.1 }這三個代碼是最關鍵的代碼,首先position為定位,方便我們定位到需要交互的地方,然后z-index設置為最大層級,然后進行覆蓋,最后opacity 進行隱藏
所以當用戶點擊正常交互的按鈕時,其實觸發了iframe的,然后執行了iframe的代碼。
拖拽劫持
拖拽劫持其實在用戶需要拖拽的地方,以及拖拽后到達的地方都有惡意代碼進行覆蓋。一般拖拽的目的是進行數據竊取
觸屏劫持
觸屏劫持,是指當用戶進行手機操作的時候,進行劫持,比如,手機的屏幕很小,一般人員會隱藏手機的地址欄,但是,攻擊者可以偽造地址欄給用戶輸入。然后進行劫持
結尾
對于點擊劫持和xss等來說,點擊劫持因為需要誘導用戶與頁面產生交互行為,因為實施的成本更高,在網路喲中比較少見,但是未來仍要注意被攻擊的可能性
總結
以上是生活随笔為你收集整理的点击按钮弹出iframe_WEB安全(四) :CSRF与点击劫持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux vim下删除一行和多行
- 下一篇: 带虚函数的类的sizeof分析