1. 程式人生 > >大型站點技術架構(八)--站點的安全架構

大型站點技術架構(八)--站點的安全架構

aof 伸縮 構造 輸出 信息泄露 .net 隨著 必須 font

大型站點技術架構(一)--大型站點架構演化

大型站點技術架構(二)--架構模式

大型站點技術架構(三)--架構核心要素

大型站點技術架構(四)--站點的高性能架構

大型站點技術架構(五)--站點高可用架構

大型站點技術架構(六)--站點的伸縮性架構

大型站點技術架構(七)--站點的可擴展性架構

從互聯網誕生起,安全威脅就一直伴隨著站點的發展,各種Web攻擊和信息泄露也從未停止。常見的攻擊手段有XSS攻擊、SQL註入、CSRF、Session劫持等。

1、XSS攻擊

XSS攻擊即跨網站腳本攻擊(Cross Site Script),指黑客通過篡改網頁。註入惡意HTML腳本。在用戶訪問網頁時。控制用戶瀏覽器進行惡意操作的一種攻擊方式。

常見的XSS攻擊類型有兩種,一種是反射型。攻擊者誘使用戶點擊一個嵌入惡意腳本的鏈接。達到攻擊的目的,例如以下圖所看到的:

技術分享

還有一種XSS攻擊是持久型XSS攻擊,黑客提交含有惡意腳本的請求。保存在被攻擊的Web網站的數據庫中,用戶瀏覽網頁時,惡意腳本被包括在正常頁面中,達到攻擊的目的,例如以下圖所看到的:

技術分享

消毒

對某些html字符轉義。如“>”轉義為“&gt”等。

HttpOnly

即瀏覽器禁止頁面javascript訪問帶有HttpOnly屬性的Cookie。可通過對Cookie加入HttpOnly屬性,避免被攻擊者利用Cookie獲取用戶信息。

2、註入攻擊

註入攻擊主要有兩種形式,SQL註入攻擊和OS註入攻擊。SQL註入攻擊的原理例如以下圖所看到的。

攻擊者在HTTP請求中註入惡意的SQL命令,server用請求構造數據庫SQL命令時。惡意SQL被一起構造。並在數據庫中執行。

技術分享

除了SQL註入。攻擊者還依據詳細應用,註入OS命令、編程語言代碼等達到攻擊目的。

消毒

和防XSS攻擊一樣,過濾請求數據中可能註入的SQL,如"drop table"等。

另外還能夠利用參數綁定來防止SQL註入。

3、CSRF攻擊

CSRF即Cross Site Request Forgery 跨網站請求偽造,攻擊者通過跨網站請求。以合法用戶的身份進行非法操作。CSRF的主要手段是利用跨站請求,在用戶不知情的情況下,以用戶的身份偽造請求。

其核心是利用了瀏覽器Cookie或serverSession策略,盜取用戶身份

技術分享

表單Toke

CSRF是一個偽造用戶請求的操作,所以須要構造用戶請求的全部參數才幹夠,表單Token通過在請求參數中添加隨機數的辦法來組織攻擊者獲取全部請求參數。

驗證碼

更加簡單高效,即請求提交時,須要用戶輸入驗證碼,以避免在用戶不知情的情況下被攻擊者偽造請求。

Referer Check

HTTP請求頭的Referer域中記錄著請求來源,可通過檢查請求來源,驗證其是否合法,還能夠利用這個功能來實現突破防盜鏈。

4、WEB應用防火墻

ModSecurity是一個開源的Web應用防火墻,探測攻擊並保護Web應用程序,既能夠嵌入到Web應用server中。也能夠作為一個獨立的應用程序啟動。

ModSecurity最早僅僅是Apache的一個模塊,如今已經有JAVA、NET多個版本號。並支持Nginx。

ModSecurity採用處理邏輯與攻擊規則集合分離的架構模式。

處理邏輯(運行引擎)負載請求和對應的攔截過濾。規則載入運行等功能。

而攻擊規則集合則負責描寫敘述對詳細攻擊的規則定義、模式識別、防禦策略等功能。處理邏輯比較穩定,規則集合須要不斷針對漏洞進行升級。這是一種可擴展的架構設計。

技術分享

5、信息加密技術

為了保護站點的敏感數據。應用須要對某些數據進行加密處理,信息加密技術科分為三類:單向散列加密、對稱加密和非對稱加密

5.1單向散列加密

單向散列加密是指通過對不同輸入長度的信息進行散列計算,得到固定長度的輸出,這個散列計算過程是單向的。例如以下圖所看到的。

技術分享

單向散列加密一般主要用途是用戶password的加密。使password不可逆的保存到數據庫中。即便數據庫信息泄露。攻擊者也無法知曉原password是什麽。

常見的單向散列算法有MD5、SHA等。

5.2對稱加密

即加密和解密都使用同一個密鑰,例如以下圖所看到的:

技術分享

經常使用的對稱加密算法有DES算法、RC算法等。對稱加密是一種傳統的加密手段,也是最經常使用的加密手段。適用於大多數場合。

5.3非對稱加密

非對稱加密使用的加密和解密不是同一密鑰。當中一個對外界公開,被成為公鑰,還有一個僅僅有全部者知道。被稱作私鑰。用公鑰加密的信息必須用私鑰才幹解開,反正。用私鑰加密的信息僅僅實用公鑰才幹解開,例如以下圖所看到的:

技術分享

非對稱加密經常使用算法有RSA等。HTTPS傳輸中瀏覽器使用的數字證書實質上是經過權威機構認證的非對稱加密的公鑰

大型站點技術架構(八)--站點的安全架構