Web1.0 服務端動態腳本的安全問題,好比將一個可執行腳本上傳到服務器上,從而得到權限。
Web2.0 Web攻擊思路從服務器端轉向客戶端,轉向了瀏覽器和用戶,例如XSS、CSRF攻擊html
瀏覽器是互聯網的重要入口,在安全攻防中,瀏覽器的做用不可忽視前端
同源策略是一種約定,它是瀏覽器最核心也是最基礎的安全功能。
同源指的是指URL的協議、域名、端口相同
舉個例子:當前URLhttp://www.example.com/index.html
shell
URL | 結果 |
---|---|
http://www.example.com/detail/page.html |
同源 |
https://www.example.com/detail/page.html |
不一樣源,協議不一樣 |
https://en.example.com/detail/page.html |
不一樣源,域名不一樣 |
https://www.example.com:8080/detail/page.html |
不一樣源,端口不一樣 |
同源具體能夠體如今兩個方面:跨域
同源策略會致使跨域問題,下面列出幾種解決方法瀏覽器
現代瀏覽器採用多進程架構。 如Chrome的主要進程分爲:瀏覽器進程、渲染進程、插件進程、擴展進程。 安全
渲染引擎由Sandbox隔離,網頁內容要與瀏覽器內核進程通訊要過IPCchannel,在其中進行安全檢查原理:通常都是瀏覽器週期性地從服務器端獲取一份最新的惡意網址黑名單,若是用戶上網時訪問的網址存在此黑名單中,瀏覽器就會彈出一個警告頁面。服務器
惡意網址只要有兩類:cookie
惡意攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。antd
XSS產生的緣由:過於信任客戶端提交的數據架構
XSS的分類:
例子1
正常發送消息:http://www.test.com/message.html?send=Hello,World!
接收者將會接收信息並顯示Hello,Word
非正常發送消息: http://www.test.com/message.html?send=<script>alert(‘foolish!’)</script>!
接收者接收消息顯示的時候將會彈出警告窗口,攻擊者也就是誘使他人點擊此連接來發起進攻
例子2
頁面後臺有個能修改用戶提交的input
元素<input type="text" value="">
正常狀況:用戶輸入123,後臺標籤<input type="text" value="123"/>
非正常狀況: 用戶輸入" onclick="alert(1)
,後臺標籤<input type="text" value="" onclick="alert(1)" />
當管理者點擊標籤是就會彈出警告窗口
XSS危害:
XSS防護:
攻擊者盜用了你的身份,以你的名義發送惡意請求,對服務器來講這個請求是徹底合法的,可是卻完成了攻擊者所指望的一個操做。
CSRF 產生緣由:重要請求操做的參數都是能夠被攻擊者猜想到的,攻擊者繞過同源策略限制將僞造請求發送出去,而相關的身份信息在cookie中也隨之發送。
例子1 銀行轉帳
一、用戶登陸某銀行網站,銀行轉帳請求url爲 http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory
二、此時用戶訪問惡意網站
三、惡意網址中有 <img src="http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory "/>
使用img
標籤繞過了同源策略向銀行服務器發起請求,cookie中身份信息也隨請求發送出去,完成了攻擊。
CSRF防護
原理:利用了視覺欺騙
攻擊方式:
攻擊者使用一個透明的iframe,覆蓋在一個網頁上,而後誘使用戶在該頁面上進行操做,此時用戶將在不知情的狀況下操做的都是透明的iframe頁面,而不是顯示的頁面
攻擊者使用一張圖片覆蓋在網頁,遮擋網頁原有位置的含義
一個簡單的例子 例子中用iframe
加載了antd-design頁面,而後用一個a
標籤蓋住了頁面的logo,點擊logo時就會跳到a
標籤指向的頁面
防護:
X-FRAME-OPTIONS
是微軟提出的一個http頭,專門用來防護利用iframe嵌套的點擊劫持攻擊。