Stan Blog

學習過程中的一些記錄

XSS (Cross-site scripting)

寫得很棒的文章,舉出很多淺顯易懂的例子介紹 xss 攻擊的種類及如何預防

前端安全系列(一):如何防止XSS攻击?


筆記:

Cross-site scripting(跨網站腳本攻擊),因避免與 CSS 混淆,通常簡稱為:XSS

惡意使用者將程式碼注入到網頁上,其他使用者在觀看網頁時就會受到影響

XSS 攻擊種類

XSS 攻擊分為三種:

  • 儲存型

常見於會用到使用者資料的情況。e.g. 論壇發文、商品評價、使用者私訊

  • 反射型

常見於使用 URL 傳遞參數的狀況。e.g. 網站跳轉、搜尋

  • DOM 型
差別

DOM 型 XSS 與另外兩種 XSS 的差別:

在 DOM 型 XSS 中,取出和執行惡意程式碼由 browser 完成,屬於前端 JavaScript 自身的安全漏洞 而另外兩種 XSS 都屬於 server 端的安全漏洞

儲存型 XSS 跟反射型 XSS 的差別:

儲存型 XSS 的惡意程式碼存在資料庫裡,反射型 XSS 的惡意程式碼存在 URL 參數裡

XSS 攻擊的預防

儲存型和反射型 XSS 攻擊:

  1. 改為纯前端渲染,把程式碼和資料分開
  2. 對 HTML 做適當轉譯

DOM 型 XSS 攻擊:

  1. 避免把不可信的資料來源當作 HTML 插到頁面上,小心使用 .innerHTML、.outerHTML、document.write()
  2. 避免將不可信的字串當作程式碼運行,小心使用 location、onclick、onerror、onload、onmouseover 等,<a> tag 的 href 屬性,JavaScript 的 eval()、setTimeout()、setInterval()

Comments

comments powered by Disqus