當前位置:
首頁 > 最新 > 大型網站架構之安全性:高安全架構

大型網站架構之安全性:高安全架構

前言

大型網站核心要素之前我們介紹了4個,今天講講這最後一個:安全性,從互聯網誕生開始,安全威脅就一直伴隨著網站的發展,各種web攻擊和信息泄露也從未停止,那麼我們今天就從下面這幾點談談網站架構的安全性:網站應用與防禦、信息加密及秘鑰安全管理、信息過濾與反垃圾

網站應用與防禦

  • XSS攻擊:站點腳本攻擊,指黑客通過篡改網頁,注入惡意HTML腳本,在用戶瀏覽網頁時,控制用戶瀏覽器進行惡意操作的一種攻擊方式;常見的XSS攻擊類型主要有2種:反射型和持久型XSS攻擊

    反射型:攻擊者誘使用戶點擊一個嵌入惡意腳本的鏈接,達到攻擊的目的

    持久型XSS攻擊:黑客提交含有惡意腳本的請求,保存在被攻擊的web站點的資料庫中,用戶瀏覽網頁時,惡意腳本被包含在正常頁面中,達到攻擊的目的,如下圖所示:

    XSS防攻擊主要手段如下

    消毒:XSS攻擊一般都是通過在請求中嵌入惡意腳本達到攻擊的目的,這些腳本是一般用戶輸入中不使用的,如果進行過濾和消毒處理,即對某些HTML危險字元轉義,如「>」轉義為「>」、"

    HttpOnly:瀏覽器禁止頁面js訪問帶有HttpOnly屬性的cookie,HttpOnly並不是直接對抗XSS攻擊而是防止XSS攻擊者竊取cookie,對於存放敏感信息的cookie,可以通過對cookie添加HttpOnly屬性,避免被攻擊者腳本竊取;

  • 注入攻擊:注入攻擊主要有2種形式,SQL注入和OS注入

    SQL注入:攻擊者在HTTP請求中注入惡意SQL命令,伺服器用請求參數構造資料庫SQL命令,惡意SQL被一起構造,並在資料庫中執行,如下圖:

    SQL注入攻擊需要攻擊者對資料庫結構有所了解才能進行,攻擊者獲取資料庫表結構信息的手段有下面幾種:

    開源:如果網站採用一些開源軟體搭建,那麼網站資料庫結構就是公開的,攻擊者可以直接獲得;

    錯誤回顯:如果網站開啟錯誤回顯,即伺服器內部500錯誤會顯示在瀏覽器上,攻擊者就可以通過故意構造非法參數,使服務端異常信息輸出到瀏覽器端,為攻擊者猜測資料庫表結構提供了便利;

    盲注:網站關閉錯誤回顯,攻擊者根據頁面變化情況判斷SQL語句的執行情況,據此猜測資料庫表結構,此種方式攻擊難度較大;

    消毒:和防XSS攻擊一樣,請求參數消毒是一種簡單暴力的有效手段,通過正則匹配:過濾請求數據中可能注入的SQL;

    參數綁定:使用預編譯手段,綁定參數是最好的防SQL注入方法,攻擊者的惡意SQL會被當成SQL的參數,而不是SQL命令;

    OS注入:利用程序漏洞,注入OS命令,編程語言代碼等達到攻擊目的。

  • CSRF攻擊:跨站點請求偽造,攻擊者通過跨站請求,以合法的用戶身份進行非法操作,CSRF的主要手法是利用跨站請求,在用戶不知情的情況下,以用戶身份偽造請求,其核心是利用了瀏覽器cookie或者伺服器session策略,盜取用戶身份:

    CSRF的防禦手段主要是識別請求者身份,主要有下面幾種方法:

    表單token:CSRF是一個偽造用戶請求的操作,所以需要構造用戶請求的所有參數才可以,表單token通過在請求參數中增加隨機數的辦法阻止攻擊者獲得所有請求參數:在頁面表單中增加一個隨機數作為token,每次響應頁面的token都不相同,從正常頁面提交的請求會包含該token值,而偽造的請求無法獲得該值,伺服器檢查請求參數中token的值是否存在並且正確以確定請求提交者是否合法;

    驗證碼:相對來說,驗證碼則更加簡單有效,即用戶請求提交的時候,需要用戶輸入驗證碼,以避免在用戶不知情的情況下被攻擊者偽造請求,但是輸入驗證碼是一種很不友好的用戶體驗,所以還是得考慮再決定使用;

    Referer check:HTTP請求頭的referer域中記錄著請求來源,可通過檢查請求來源,驗證其是否合法,很多網站使用這個功能來實現圖片防盜鏈(如果圖片訪問的頁面來源不是來自自己網站的網頁就拒絕)。

  • 其他攻擊和漏洞

    error code:錯誤回顯,許多網站web伺服器默認是打開異常信息輸出的,即伺服器未處理的異常堆棧信息會直接輸出到客戶端瀏覽器,這種方式雖然對程序調試和錯誤報告有好處,但是同時也給黑客造成可趁之機。故意製造非法輸入,使系統運行時出錯,獲取異常信息,從而尋找系統漏洞進行攻擊,防禦的手段就是,配置500頁面,當伺服器出現運行時異常,直接跳轉到異常頁面,避免將錯誤信息顯示出來;

    HTML注釋:為了開發方便或者不適當的原因,會在HTML上寫大量注釋,這些注釋會顯示在客戶端瀏覽器上,給黑客造成攻擊便利,程序最終發布前需要進行代碼review或自動掃描,避免html注釋漏洞;

    文件上傳:一般網站都會有文件上傳功能,如果上傳的是可執行程序,並通過該程序獲得伺服器端命令執行能力,那麼攻擊者幾乎可以在伺服器上為所欲為,並以此為跳板攻擊集群環境下的其他機器。最有效的防禦手段就是設置上傳文件白名單,只允許可靠的文件類型,此外還可以修改文件名,使用專門的存儲等手段;

    路徑遍歷:攻擊者請求的URL中使用相對路徑,遍歷系統未開放的目錄和文件,防禦手段是將js、css等資源文件部署在獨立的伺服器,使用獨立域名,其他文件不使用靜態URL訪問,動態參數不包含文件路徑信息。

  • 應用防火牆:ModSecurity是一個開源的web應用防火牆,探測攻擊並保護web應用程序,既可以嵌入到web應用伺服器中,也可以作為一個獨立的應用程序啟動;

    ModSecurity採用處理邏輯與攻擊規則集合分離的架構模式,處理邏輯(執行引擎)負責請求和響應的攔截過濾,規則載入執行等功能,而攻擊者規則集合則負責描述對具體攻擊的規則定義、模式識別、防禦策略等功能。處理邏輯比較穩定,規則集合需要不斷針對漏洞進行升級,這是一種可擴展的架構設計,如下圖:

  • 安全漏洞掃描:網站安全漏洞掃描工具是根據內置規則,構造具有攻擊性的URL請求,模擬黑客攻擊行為,用以發現網站安全漏洞的工具。

信息加密及秘鑰安全管理

通常為了保護敏感數據,應用需要對這些信息進行加密處理,信息加密技術科分為下面三類:

加密服務介面通過密鑰伺服器密鑰服務取得加密解密密鑰,並緩存在本地,定時更新,而密鑰伺服器中的密鑰則來自多個密鑰存儲伺服器,一個密鑰分片後存儲在多個存儲伺服器中,每個伺服器都有專人負責管理,沒有人能查看完整的密鑰信息。

信息過濾與反垃圾

常用的信息過濾與反垃圾手段有下面幾種:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 咖啡之美 的精彩文章:

TAG:咖啡之美 |