一:XSS跨站腳本攻擊javascript
(1)惡意攻擊者向WBE頁面插入惡意代碼(html標籤,javascript代碼),使用戶在瀏覽網頁時,html惡意代碼被執行,從而達到盜取用戶的cookie信息,會話劫持等行爲。html
(2)類別
java
1.DOM xss:文本對象模型,使得DOM能夠直接容許程序和腳本動態的訪問和更新文檔的內容,結構和樣式。不須要服務器解析響應的直接參與,觸發XSS靠的是瀏覽器端的DOM解析,能夠徹底認爲這是瀏覽器的事情。算法
2.反射型xss:反射型XSS也被稱爲非持久性的XSS,是如今最容易出現的一種XSS漏洞。發出請求時,XSS代碼出如今URL中,最後輸入提交到服務器,服務器解析後在響應內容中出現這段XSS代碼,最後瀏覽器解析執行。瀏覽器
3.存儲型xss:存儲型的XSS也被稱爲持久性XSS,他是最危險的一種跨站腳本攻擊,相比反射型XSS和DOM型XSS具備更高的隱蔽性,因此危害大,他不須要用戶手動觸發,當攻擊者提交一段XSS代碼後,被服務器接收並存儲起來,當全部瀏覽器訪問某個頁面時都會被XSS,其中最典型的例子就是留言板。安全
(3)危害服務器
1.利用虛假輸入表單盜取用戶信息cookie
2.利用腳本竊取用戶的cookie值。session
(4)防護措施xss
1.在cookie中設置HttpOnly屬性,使js腳本沒法讀取到cookie信息。(後臺設置)
2.避免使用eval執行字符串
3.表達輸入經行驗證,過濾標籤,以及轉義字符。
二:跨站僞造請求
(1)原理:經過用戶訪問網站A時所保存的cookie信息,而後再沒退出網站A的狀況下跳轉到網站B,那麼就會將cookie信息攜帶到網站B,而後A就會認爲是它自身在本網站訪問本身的假象。典型的案例就是轉帳。
(2)本質:CSRF攻擊是攻擊者利用用戶身份操做用戶帳號的一種攻擊方式。
(3)解決方法:
1.驗證碼:跨站轉帳的狀況下建議在轉帳以前開設驗證碼。
2.Referer Check :利用HTTP請求頭中的Referer字段來檢測當前請求頁面的來源頁面的地址是否合法。
優勢:在最後給全部安全敏感的請求統一添加一個攔截器來檢查Referer的值。
缺點:服務器並非何時都設置Referer字段,例如:出於保護用戶隱私的考慮,會限制Referer的發送,HTTPS轉到HTTP,出於安全考慮,瀏覽器不會發送Referer。
3.在url增長一個token參數做爲隨機數。
優勢:比Referer方便,同時讓攻擊者沒法再構造出一個完整的url實施CSRF攻擊。
缺點:要給每個url添加一個字段。
注意:token必須是足夠安全的隨機數算法,能夠存放在session,和cookie中。儘可能放在表單中,以post方式發送請求。
三:點擊劫持
(1)點擊劫持是一種視覺上的欺騙手段,攻擊者使用一個透明的不可見的iframe,覆蓋在一個頁面上,而後經過調整頁面使剛恰好覆蓋在某個按鈕上,而後點擊觸發事件,跳轉到攻擊者設置的頁面上。
(2)解決方法:X-Frame-Options
X-Frame-Options HTTP響應頭是用來給瀏覽器指示容許一個頁面可否在<iframe>,<frame>,<objcet>中展現的標記。
(3)可選值
1.DENY:瀏覽器拒絕當前頁面加載任何frame頁面。即便是相同域名的頁面也不容許。
2.SAMEORIGIN:容許加載frame頁面,可是frame頁面的地址只能爲同源域名下的頁面
3.ALLOW-FROM:能夠加載指定來源的frame頁面。