CSRF攻擊及防護:
CSRF 中文名稱:跨站請求僞造,攻擊者盜用客戶的身份,以客戶名義發送惡意請求。html
產生緣由:如圖前端
當用戶訪問一個安全的網站A,A返回給客戶端一個正確的cookie,可是用戶在沒
有登出A的網站狀況下登陸B危險網站,B要求訪問第三方站點,這時候會經過用戶
向安全的網站那A發出一個不合理的危害請求,這時候因爲請求帶着cookie A不
知道這是危險網站發出的,覺得是用戶正常發出的,致使危害。web
防護方法:數據庫
①:利用攻擊者不能得到第三方的Cookie(理論上),在頁面增長加密的cookie值,以及Hash值,當發送請求的時候服務器對加密的cookie進行驗證,並驗證hash以便確認是真正客戶。
②: 每次的用戶提交都須要用戶在表單中填寫一個驗證碼,這樣能夠有效的防止其餘網站惡意攻擊。後端
XSS攻擊及防護:
XSS全稱跨站腳本攻擊,就是經過向網站寫入js腳原本實現攻擊。攻擊者在Web頁面裏插入惡意html代碼,當用戶瀏覽該網頁時,嵌入其中代碼會被執行,從而達到攻擊用戶的目的。瀏覽器
XSS分兩種類型:
① 非持久性攻擊:
在URL的後面拼接 <script>惡意代碼</script>那麼用戶打開此連接,就會直接執行js,這種攻擊都是一次性的,誘使別人點擊,從而經過執行腳本,獲取對方的cookie。你獲得對方的cookie後,就能夠隨心所欲了。安全
② 持久性攻擊:
這種攻擊就不是在url上下手了,而是直接把注入代碼寫到網站數據庫中。有些網站呢,是內容生成網站,好比不少的博客站,此時,若是不對用戶輸出的內容加以過濾,就能夠注入一些js腳本內容。這樣,別人看到這篇博客時,已經在執行他寫的js腳本了。(新浪種過大招。。)服務器
解決方案:
①:前端後端在顯示數據和存儲數據的時候,對標籤進行轉義過濾,好比將<script>的兩邊括號就行轉化<>等。
②:後端接收請求時,驗證請求是否含有攻擊請求,並對攻擊請求進行截取屏蔽。cookie
其實如今大多成熟的web框架,還有瀏覽器如Chrome,自帶了XSS過濾器(CSP)。CSP 的實質就是白名單制度,開發者明確告訴客戶端,哪些外部資源能夠加載和執行,等同於提供白名單。它的實現和執行所有由瀏覽器完成,開發者只需提供配置。框架