大型網站技術架構(八)--網站的安全架構
從網際網路誕生起,安全威脅就一直伴隨著網站的發展,各種Web攻擊和資訊洩露也從未停止。常見的攻擊手段有XSS攻擊、SQL隱碼攻擊、CSRF、Session劫持等。
1、XSS攻擊
XSS攻擊即跨站點指令碼攻擊(Cross Site Script),指黑客通過篡改網頁,注入惡意HTML指令碼,在使用者訪問網頁時,控制使用者瀏覽器進行惡意操作的一種攻擊方式。
常見的XSS攻擊型別有兩種,一種是反射型,攻擊者誘使使用者點選一個嵌入惡意指令碼的連結,達到攻擊的目的,如下圖所示:
另一種XSS攻擊是持久型XSS攻擊,黑客提交含有惡意指令碼的請求,儲存在被攻擊的Web站點的資料庫中,使用者瀏覽網頁時,惡意指令碼被包含在正常頁面中,達到攻擊的目的,如下圖所示:
消毒
對某些html字元轉義,如“>”轉義為“>”等。
HttpOnly
即瀏覽器禁止頁面javascript訪問帶有HttpOnly屬性的Cookie。可通過對Cookie新增HttpOnly屬性,避免被攻擊者利用Cookie獲取使用者資訊。
2、注入攻擊
注入攻擊主要有兩種形式,SQL隱碼攻擊和OS注入攻擊。SQL隱碼攻擊的原理如下圖所示。攻擊者在HTTP請求中注入惡意的SQL命令,伺服器用請求構造資料庫SQL命令時,惡意SQL被一起構造,並在資料庫中執行。
除了SQL隱碼攻擊,攻擊者還根據具體應用,注入OS命令、程式語言程式碼等達到攻擊目的。
消毒
和防XSS攻擊一樣,過濾請求資料中可能注入的SQL,如"drop table"等。另外還可以利用引數繫結來防止SQL隱碼攻擊。
3、CSRF攻擊
CSRF即Cross Site Request Forgery 跨站點請求偽造,攻擊者通過跨站點請求,以合法使用者的身份進行非法操作。CSRF的主要手段是利用跨站請求,在使用者不知情的情況下,以使用者的身份偽造請求。其核心是利用了瀏覽器Cookie或伺服器Session策略,盜取使用者身份。
表單Toke
CSRF是一個偽造使用者請求的操作,所以需要構造使用者請求的所有引數才可以,表單Token通過在請求引數中增加隨機數的辦法來組織攻擊者獲取所有請求引數。
驗證碼
更加簡單高效,即請求提交時,需要使用者輸入驗證碼,以避免在使用者不知情的情況下被攻擊者偽造請求。
Referer Check
HTTP請求頭的Referer域中記錄著請求來源,可通過檢查請求來源,驗證其是否合法,還可以利用這個功能來實現突破防盜鏈。
4、WEB應用防火牆
ModSecurity是一個開源的Web應用防火牆,探測攻擊並保護Web應用程式,既可以嵌入到Web應用伺服器中,也可以作為一個獨立的應用程式啟動。ModSecurity最早只是Apache的一個模組,現在已經有JAVA、NET多個版本,並支援Nginx。
ModSecurity採用處理邏輯與攻擊規則集合分離的架構模式。處理邏輯(執行引擎)負載請求和相應的攔截過濾,規則載入執行等功能。而攻擊規則集合則負責描述對具體攻擊的規則定義、模式識別、防禦策略等功能。處理邏輯比較穩定,規則集合需要不斷針對漏洞進行升級,這是一種可擴充套件的架構設計。
5、資訊加密技術
為了保護網站的敏感資料,應用需要對某些資料進行加密處理,資訊加密技術科分為三類:單向雜湊加密、對稱加密和非對稱加密。
5.1單向雜湊加密
單向雜湊加密是指通過對不同輸入長度的資訊進行雜湊計算,得到固定長度的輸出,這個雜湊計算過程是單向的,如下圖所示。
單向雜湊加密一般主要用途是使用者密碼的加密,使密碼不可逆的儲存到資料庫中,即便資料庫資訊洩露,攻擊者也無法知曉原密碼是什麼。
常見的單向雜湊演算法有MD5、SHA等。
5.2對稱加密
即加密和解密都使用同一個金鑰,如下圖所示:
常用的對稱加密演算法有DES演算法、RC演算法等。對稱加密是一種傳統的加密手段,也是最常用的加密手段,適用於大多數場合。
5.3非對稱加密
非對稱加密使用的加密和解密不是同一金鑰,其中一個對外界公開,被成為公鑰,另一個只有所有者知道,被稱作私鑰。用公鑰加密的資訊必須用私鑰才能解開,反正,用私鑰加密的資訊只有用公鑰才能解開,如下圖所示:
非對稱加密常用演算法有RSA等。HTTPS傳輸中瀏覽器使用的數字證照實質上是經過權威機構認證的非對稱加密的公鑰。
相關文章
- 大型網站技術架構——2. 網站架構模式網站架構模式
- 大型網站技術架構(三)--架構模式網站架構模式
- 大型網站架構利器-CDN技術網站架構
- 大型網站技術架構(四)--核心架構要素網站架構
- 大型網站技術架構核心原理(1)網站架構
- 一張圖看懂大型網站技術架構網站架構
- 讀書筆記-大型網站技術架構筆記網站架構
- 網站技術架構網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第4篇 架構師(附 大型網站架構技術一覽)網站架構筆記
- 乾貨 | 大型網站專案架構技術一覽網站架構
- 大型網際網路公司網站架構背後的基礎技術2019網站架構
- 大型網站架構模式筆記網站架構模式筆記
- 大型網站系統架構演化網站架構
- 大型網站架構之我見網站架構
- 大型網站架構演化歷程網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第2篇 架構網站架構筆記
- 大型網站架構演化發展歷程網站架構
- 讀書筆記 之《軟體架構設計: 大型網站技術架構與業務架構融合之道》筆記架構網站
- 思維導圖形式帶你讀完《大型網站技術架構》上網站架構
- 思維導圖形式帶你讀完《大型網站技術架構》中網站架構
- 《大型網站技術架構核心原理與案例分析》讀書筆記(二)網站架構筆記
- 大型網站架構演化發展歷程 - 上網站架構
- 如何保證網站的安全架構,不被黑客攻擊網站架構黑客
- 阿里面試技術手冊(二):大型網站架構演化發展歷程阿里面試網站架構
- 大型網站的可伸縮性架構如何設計?網站架構
- 《大型網際網路企業安全架構》讀書筆記架構筆記
- 大型分散式網站架構實戰專案分析分散式網站架構
- 網站架構設計網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第3篇 案例網站架構筆記
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第1篇 概述網站架構筆記
- 大型網站架構演進的五大階段盤點網站架構
- 大型網站背後的高效能系統架構設計網站架構
- 初入探秘:大型網站架構設計與方法總結網站架構
- 【網站架構13/100】一步步帶你,如何網站架構網站架構
- 乾貨:記一次JavaWeb網站技術架構總結JavaWeb網站架構
- 大型網際網路架構概述架構
- [譯] 多網站專案的 CSS 架構網站CSS架構
- 高併發網站架構設計網站架構
- 大型分散式網站架構:快取在分散式系統中的應用分散式網站架構快取