大型網站技術架構筆記(7-8章)隨需應變:網站的可擴展架構; 固若金湯:網站的安全架構

​第七章 隨需應變:網站的可擴展架構

    擴展性:只對現有系統形象最小的情況下,系統的可持續擴展或提升能力。

    伸縮性:指系統通過增加(減少)自身資源規模的方式,增加(減少)系統計算處理事務的能力。

    7.1構建可擴展的網絡架構

    設計網站可擴展架構的核心思想是模塊化,並在此基礎上,降低模塊間的耦合性,提高模塊的複用性。

    7.2利用分佈式消息隊列降低系統耦合性

    模塊之間不存在直接調用那麼新增模塊或者修改模塊就對其他模塊影響最小,這樣系統的可擴展性最好。

        7.2.1事件驅動架構

        事件驅動架構:通過在低耦合的模塊之間傳輸事件消息,以保持模塊的鬆散耦合。

        7.2.2分佈式消息隊列

    7.3利用分佈式服務打造可複用的業務平臺

        7.3.1Web Service與企業級分佈式服務

        

        Web是早期的企業應用開發很時髦的詞彙,但是有以下缺點:

            1.臃腫的註冊和觸發機制

            2.低效的XML序列化手段

            3.開銷相對較高的HTTP遠程通信

            4.複雜的部署與維護手段

        7.3.2大型網站分佈式的    需求與特點

            負載均衡

            失效轉移

            搞笑的遠程通信

            整合異構系統

            對應用最少侵入

            版本管理實時監控

        7.3.3分佈式服務架構設計

        服務消費者程序通過服務接口使用服務,而服務接口通過代理加載具體服務,具體服務可以是本地代碼,也可以是遠程服務因此對應用侵入較少:應用程序只需要調用服務接口,服務框架根據配置自動調用本地或遠程實現。

        服務框架客戶端模塊中心通過服務註冊中心    ,加載服務提供者列表,查找需要的服務接口,並根據配置的負載均衡策略將服務調用請求發送到某臺提供服務的服務器,如果服務調用失敗,客戶端會自動從服務者列表選擇一個相同服務的另一臺服務器,重新請求服務,實現服務的自動轉移失效,保證服務高可用。

第八章 固若金湯:網站的安全架構

    8.1網站應用攻擊和防禦

        8.1.1XSS攻擊

        XSS即跨站點腳本攻擊,通過黑客篡改網頁,注入惡意HTML代碼,在用戶瀏覽頁面時候,控制用戶瀏覽器進行惡意操作的攻擊

        常見的XSS分爲兩種一種是反射型

        另一種是持久型XSS攻擊

 

        XSS攻擊的主要防止手段:

        消毒:對html危險字符進行轉義。

       HttpOnly:禁止頁面JavaScript訪問帶有HttpOnly的Cookie,也就是對Cookie添加用戶驗證,防止腳本竊取Cookie

        8.1.2注入攻擊

        SQL注入和OS注入兩種

        SQL注入需要獲取表結構,攻擊者獲取表結構主要有以下手法:

            開源

            錯誤回顯

            盲注:根據頁面變化,判斷SQL執行情況,猜測表結構

            防止SQL注入:

            消毒:正則表達式過濾可能SQL注入

            參數綁定:SQL預編譯和參數綁定,惡意SQL會被當作參數不會當作命令

        8.1.3CSRF攻擊(Cross Site Request Forgery跨站點請求僞造攻擊)

 

        其核心是利用瀏覽器Cookie和服務器Session,盜取用戶身份

        防禦手段主要是識別請求者身份:

             表單Token

             驗證碼

           Referer check:HTTP請求頭Referer中包含請求來源,可通過檢測請求來源檢測是否合法

         8.1.4其他攻擊和漏洞

        Error Code

        HTML註釋

        文件上傳

        路徑遍歷

         8.1.5Web應用防火牆

         例如ModSecurity

        ModSecuriy採用邏輯與攻擊分離的設計架構。處理邏輯(執行引擎)負責請求和響應的攔截過濾,規則加載執行功能。而攻擊規則集合負責描述對具體攻擊的規則定義,模糊識別,防禦策略等功能。

    8.2信息加密技術和密鑰安全管理

        8.2.1單向散列加密

        明文通過散列算法加密獲得密文,此過程不可逆,驗證時需要將用戶新輸入的密碼重新加密,兩個密文進行比較,常見的如MD5加密算法,爲了加強散列算法的複雜度通常加salt處理。

        8.2.2對稱加密

        此類型加密方式簡單,高效,系統開銷小,但是加密解密都是一個密鑰,交換密鑰是一個問題,常見對稱加密算法有DES算法,RC算法。

        8.2.3非對稱加密     

        常用於信息安全傳輸和數字簽名

        信息傳輸:A利用B的公鑰加密明文,然後通過公共渠道傳輸(即使被截獲沒有私鑰依然無法得到明文),B接到密文利用自己的私鑰解密得到明文。

        數字簽名:簽名發放者利用自己的私鑰加密,獲得者可以用公鑰解密,由於私鑰只有發送者有,可以具有簽名的作用

    8.3信息過濾與反垃圾

        8.3.1文本匹配

        主要解決敏感詞過濾,主要通過敏感詞過濾樹,提高敏感詞比對速率。比如:阿拉伯,阿拉汗,阿油,北京北大荒,北風。

        8.3.2分類算法

            常用的是貝葉斯算法,如垃圾郵件出現“茶葉”概率爲20%,非垃圾郵件概率爲1%,就能得到分類模型。是一個概率值,會出現誤判。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章