昨天很快樂地放了個無風無雨還出大太陽的颱風假,結果今天沒有颱風假反而大爆與,哭啊~不是這樣搞的吧?差一點就可以六天連假了,實在可惜。
好的,前兩天與大家介紹了 Reflected XSS 與 Stored XSS ,今天要來與大家介紹 XSS 的最後一個部分 : DOM Based XSS
DOM (Document Object Model) 為文件物件模型的縮寫,DOM 會將文件內的標籤定義成物件,用於 HTML 和 XML 文件。DOM 將文件解析為一個由節點和對象組成的結構集合,使程式語言可以互動並操控頁面內容。
DOM Based XSS 和 Reflected XSS 一樣,都需要使用 spoofing 的技巧,誘導使用者對 url 進行點擊才會觸發攻擊。
與 Reflected XSS和 Stored XSS 的差別在於 Payload 是否在前端被渲染,而經由 JavaScript 在前端渲染產生的弱點類型即被稱為 DOM Based XSS。
那麼該如何對這種攻擊手法進行防範呢? DOM-Based須 由前端來防範
透過選擇正確的方法、屬性來操作 DOM,並且對插入的字串進行過濾,像是將
innerHTML = name;
此處的 innerHTML 改為使用「 innerText 」,使用此屬性插入字串時,會被保證作為純粹的文字,這樣就能避免 DOM Based XSS 的攻擊。