《Web前端黑客技術解密》讀書筆記(第三、四、五章)
本文地址:http://www.jianshu.com/p/486b3a10efb2
第三章 前端黑客之XSS
XSS型別
XSS有三類:反射性XSS(也叫非持久型XSS)、儲存型XSS(也叫持久型XSS)和 DOM XSS
- 反射性XSS
發出請求時,XSS程式碼出現在URL中,作為輸入提交到服務端,服務端解析後響應,然後XSS出現在響應,然後瀏覽器解析執行。
// 構造url http://foo.com/reflect.php?x=<script>alert(1)</script>
// 還可以構造base64加密方式
x=data:text/html;base64,PHNjcmlwdD5hbGVydCgnRVZBTCEhIScpPC9zY3JpcHQ+
- 儲存型XSS
提交資料會儲存在服務端,比較隱蔽
常見輸入點
- document.URL
- document.URLRnencoded
- document.location(及location其他屬性)
- document.referrer
- window.location
- window.name
- xhr(請求相關資料)
- document.cookie
- 表單值
常見輸出點
直接輸出HTML內容
- document.write()
- document.writeln()
- document.body.innerHtml=...
修改DOMshu樹及事件
- document.forms[0].action= ...
- document.attachEvent()
- document.create()
- document.execCommand()
- document.body
- window.attachEvent()
替換document URL
- document.location=...
- document.location.hostname=...
- document.location.replace
- document.location.assign()
- document.URL=...
- window.navigator...
開啟或修改視窗
- document.open
- window.open
- window.location.href=...
直接執行指令碼
- eval
- setInterval
- setTimeout
第四章 前端黑客之CSRF
全稱 Cross Site Request Forgery(跨站請求偽造)
偽造請求
偽造GET
正常網站 a.com,惡意網站 b.com,在b站通過建立
img
、script
、link
等標籤,誘惑使用者訪問b站,就跨站傳送GET請求
注意:
- 如果使用者在a.com中是登陸的,在跨站請求時也會帶上cookie等相關資訊,請求頭只有 referer 不同。
- 本地Cookie與記憶體Cookie在這種CSRF攻擊中對於IE瀏覽器有些不同,其不允許a網站的本地Cookie在跨域中帶上,除非在HTTP響應中設定P3P(Platform for Privacy Preferences)。非IE沒有這個限制
偽造POST
通過在惡意網站建立
form
新增 form的method為post,可以做到偽造POST請求,其他請求也類似
攻擊型別
按攻擊方式分為:HTML CSRF攻擊、JSON HiJacking攻擊和Falsh CSRF攻擊
HTML CSRF攻擊
- HTML
通過設定 src/href 等地址都可以發起GET請求
<link href=''>
<img src=''>
<img lowsrc=''>
<img dynsrc=''>
<meta http-equiv='refresh' content="0; url=''">
<iframe src=''>
<frame src=''>
<script src=''></script>
<bgsound src=''>
<embed src=''>
<video src=''>
<audio src=''>
<a src=''></a>
<table background=''></table>
// ...
- CSS
@import ''
background:url('')
對於POST請求只能通過 form 形式
JSON HiJacking
對AJAX響應中最常見的JSON資料型別進行劫持攻擊。尤其是JSONP形式url中的callback
Falsh CSRF攻擊
第五章 前端黑客之介面操作劫持
介面操作劫持分為三種
點選劫持(Clickjacking),拖動劫持(Drag & Drop jacking),觸屏劫持(Tapjacking)
- 在瀏覽器中,拖放操作是不受“同源策略”限制的,拖動這些連結的過程中可能會有
session key
、token
等
劫持原理
透明層+iframe
拖放通過dataTransfer物件(有個getData(), setData()方法)
-
拖放函式有:
- 滑鼠拖動一個滑鼠時:
ondrag
,ondragstart
,ondragend
- 將物件拖動到一個有效的目標時,目標物件會觸發:
ondragenter
,ondragover
,ondragleave
,ondrop
- 滑鼠拖動一個滑鼠時:
很多瀏覽器,尤其是移動端,可以滑動跨域
附原書購買地址: http://item.jd.com/11181832.html
相關文章
- 讀《JavaScript核心技術開發解密》筆記JavaScript解密筆記
- 黑客與畫家讀書筆記黑客筆記
- 《Google SRE 運維解密》讀書筆記Go運維解密筆記
- 讀書筆記-大型網站技術架構筆記網站架構
- 《淘寶技術這十年》讀書筆記筆記
- 《深入分析Java Web技術內幕》讀書筆記 - 第1章 深入Web請求過程JavaWeb筆記
- 《白帽子講web安全》讀書筆記Web筆記
- 【Laravel】Laravel 框架關鍵技術解析·讀書筆記(二)Laravel框架筆記
- java核心技術閱讀筆記Java筆記
- 讀書筆記筆記
- 《spring技術內幕》讀書筆記3-AOP的實現Spring筆記
- 《深入分析JavaWeb技術內幕》之讀書筆記(篇三)JavaWeb筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 程式碼熱修復技術Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 資源熱修復技術Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 熱修復技術介紹Android筆記
- 《讀書與做人》讀書筆記筆記
- HTTP讀書筆記——瞭解Web及網路基礎HTTP筆記Web
- 前端技術演進(一):Web前端技術基礎前端Web
- 《Go 語言程式設計》讀書筆記(四)介面Go程式設計筆記
- webpackDemo讀書筆記Web筆記
- Vue讀書筆記Vue筆記
- 散文讀書筆記筆記
- Cucumber讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- postgres 讀書筆記筆記
- 讀書筆記2筆記
- 讀書筆記3筆記
- 【前端效能優化】高效能JavaScript讀書筆記前端優化JavaScript筆記
- 如何提升web前端技術?Web前端
- 《資料資產管理核心技術與應用》讀書筆記-第四章:資料質量的技術實現(一)筆記
- Web前端是什麼?Web前端包括哪些技術?Web前端
- 《大型網站技術架構核心原理與案例分析》讀書筆記(二)網站架構筆記
- 維度處理-資料倉儲-讀書筆記(四)筆記
- Java 併發程式設計實踐 讀書筆記四Java程式設計筆記
- 解密阿里巴巴大廠裡的web前端技術體系,技術不斷迭代,我們如何突破?解密阿里Web前端
- js高程讀書筆記JS筆記
- 《論語》讀書筆記筆記
- 《重構》讀書筆記筆記
- PMBook讀書筆記(一)筆記