前端培訓-初級階段 - xss相關(2019-04-18)

前端最基礎的就是 HTML+CSS+Javascript。掌握了這三門技術就算入門,但也僅僅是入門,如今前端開發的定義已經遠遠不止這些。前端小課堂(HTML/CSS/JS),本着提高技術水平,打牢基礎知識的中心思想,咱們開課啦(每週四)。javascript

這塊內容是在會後又加了一節(老闆說要處理這塊內容)。以前其實就作過一期這樣的內容XSS_跨站腳本攻擊html

咱們要講什麼?

  1. xss 是什麼?
  2. 攻擊原理是什麼?
  3. 危害
  4. 預防手段是什麼?
  5. web 安全還有什麼是須要注意的

XSS 是什麼?

XSS 攻擊全稱跨站腳本攻擊 (Cross Site Scripting),是爲不和層疊樣式表 (Cascading Style Sheets, CSS) 的縮寫混淆,故將跨站腳本攻擊縮寫爲 XSS,XSS 是一種在web應用中的計算機安全漏洞,它容許惡意 web 用戶將代碼植入到提供給其它用戶使用的頁面中。前端

XSS 攻擊原理

惡意攻擊者往 Web 頁面裏插入惡意 javascript 代碼。當其餘用戶瀏覽該頁面時,嵌入的代碼會被執行,從而達到惡意攻擊用戶的目的。java

XSS 危害

常見於一些私人的博客,攻擊者惡意評論,彈出alert,這種充其量也就是一個玩笑。
可是若是是盜竊cookie異常提交請求,這些就屬於危險操做。cookie能夠用來假裝成其餘用戶操做,有可能就會形成財產上的損失。jquery

預防手段

首先咱們來分析他攻擊方式,在其餘用戶端執行了一段異常代碼,那麼咱們不執行不就行了嗎?web

  1. 富文本狀況,這個可屬於重災區,由於你不肯定內容是什麼,你還要原樣輸出。業界方案通常來講是白名單,好比說 <script> 標籤都過濾,一些時間都過濾好比<img onerror=,從而達到預防攻擊的目的。
  2. 服務端直出狀況,好比說一些模板引擎啊什麼的,咱們公司用的是 velocityfreemark。這個位置又分爲三個方法segmentfault

    1. toHtml,首先全部內容都是直出到頁面,先通過html解析。這個位置要預防<script>等一些注入的狀況
    2. toJS,有可能有一些內容是輸出在了 script 標籤內,這個時候咱們要注意他是否是"'</script>等,故意破壞數據的。
    3. toURL,這個就是判斷存在不存在javascript:alert();的狀況了。
  3. 頁面 innerHTML 或者 write。這個怎麼說呢,Vue 或者一些框架是沒問題的,由於他們是插槽法,而不是拼接法。安全

    1. toHtml,主要用於 jquery ,處理一些字符變成實體編碼
    2. toURL,也是用來判斷javascript:alert();的狀況

web 安全問題

XSS、CSRF、arp、xff、中間人攻擊、運營商劫持、防暴刷cookie

  1. CSRF 通常來講就是頁面直出一個token,每次請求都帶上token。
  2. 劫持 https有的時候運營商的劫持仍是沒辦法。
  3. 刷,這個略坑。

參考代碼

clipboard.png

參考文獻以及資料

  1. Web安全學習筆記也是當初在網上找資料發現的。介紹的挺全面的。
相關文章
相關標籤/搜索