大型網站技術架構之安全性

大型網站技術架構之安全性

網站攻擊方式

  • XSS(Cross Site Script) 跨站腳本攻擊 一般在PC瀏覽器端

    反射性:例如有張圖片或者連接,當用戶一點擊就會執行攻擊的腳本,向攻擊者服務器發送cookie或密碼信息,或者執行一個用戶非自願的一個請求到服務端

    持久性:將攻擊的腳本信息通過頁面的表單保存到了數據庫中,當其他人訪問到該條記錄時就會在其他人瀏覽器上執行有害腳本,彈出框或盜取cookie

    解決:

    1、過濾用戶輸入的參數,在用戶查詢時也做一次過濾,將帶有<img 轉化成html 編碼字符 &lt

    2、 HttpOnly=true 只能通過http才能獲取到cookie,通過script拿不到cooike

  • SQL注入和OS注入

    在頁面中隨着參數信息帶上一些SQL語句,例如drop table t; 然後達到攻擊數據庫的目的

    解決:

    1、過濾用戶參數中和SQL有關的信息

    2、將用戶參數作爲一個字符串傳到數據中,預編譯和參數綁定

    3、避免將具體異常信息拋出到頁面上

OS注入:注入OS命令、在編譯代碼中注入破壞系統的指令,達到攻擊的目的

  • CSRF(Cross Site Request Forgery) 跨站請求僞造

攻擊者利用瀏覽器的Cookie和Session策略盜取用戶身份,僞造用戶向服務端發送攻擊非法請求

例如 瀏覽器用戶C登錄了A服務, 然後點擊了某個url然後請求了攻擊者服務器B,然後服務器B在響應頭加上一個重定向url爲請求服務器A,並且帶上參數,例如從用戶C轉1億到攻擊者賬戶中這樣一個請求。

解決:

1、表單token:每次請求需要增加一個動態改變的token參數,這個token可以每次請求之前獲取,或者在頁面中返回,下次請求帶上。這樣攻擊者就拿不到這個動態token

2、驗證碼

3、Refer (表示這次請求來自於哪個網站) check  服務A需要檢查http 請求頭中的refer 是否來自本站,例如攻擊者的請求的話refer爲攻擊者的站點

通過refer check 可以實現圖片防盜鏈( 圖片服務器接受圖片加載請求,然後判斷refer 是否是自己網站的請求,如果不是則拒絕)
  • 其他攻擊手段

    1、Error Code 500異常信息返回到頁面上
    2、HTML 註釋
    3、文件上傳,如果上次可執行文件 (單獨一個服務存放文件)
    4、通過url枚舉其他文件    避免將服務器目錄信息以url展示
    

信息加密技術

  • MD5加密算法 單向加密技術,不可逆的,MD5算法還可以用作數據摘要,驗證數據是否被篡改過,計算的結果具有高度離散隨機的特徵

  • 對稱加密算法(DES):高效 但是不安全

  • 非對稱加密算法: 公鑰是公佈出去的,私鑰只有所有者擁有。比對稱加密更安全,但是加密效率不高

    用處:

    數據加密:A用公鑰加密明文數據,只能由B用私鑰進行解密

    數字簽名:簽名者用私鑰加密數據,發給對方,接受者用簽名者公鑰的進行解密數據,獲得到明文數據,作用就是保證接收方收到的數據一定是來自簽名者,因爲只有簽名者纔會有私鑰,這個信息是不可抵賴的,具有簽名的性質。

  • 對稱加密和非對稱加密混合

    HTTPS:就是利用這種方式來保證數據安全傳輸,非對稱加密有個問題就是 私鑰加密的數據能被任何一個拿到公鑰的客戶端進行解密,那麼這樣還是不能保證數據安全性,所以在每個客戶端會動態生成一個對稱的加密的密鑰,然後利用非對稱公鑰加密這個密鑰發到服務端,服務端通過私鑰解密出這個密鑰,後面就通過對稱加密技術對數據進行傳輸

瀏覽器中的證書就是經過權威機構認證的非對稱加密的公鑰

信息過濾和反垃圾

信息過濾:

1、將敏感詞替換成***,對於敏感詞和文本少的話使用多級hash就可以解決,如果量大則需使用Trie樹結構

反垃圾:

2、信息分類:使用葉貝斯算法,通過垃圾郵件信息樣本訓練一個模型出來,然後輸入一個郵件進而判斷是否爲垃圾郵件

黑名單:

1、通過將垃圾郵件用戶加入黑名單,每次判斷來件人是否存在黑名單,如果存在則丟棄郵件, 如果使用hash存放黑名單,如果郵件量達到上億,使用hashmap數據結構存放不下,因爲還需存放額外數據來解決hash衝突,當量一大,查詢效率會減慢。

2、布隆過濾器:爲了優化以上hashmap實現的困難處,在節省空間和精準之間做了權衡。

將黑名單郵件經過8次不同的hash函數獲得hash值,然後將對應的hash值對整個bit 位(例如16G的bit位)取餘,將對應8處地方都置爲1,然後判斷一個郵件時,首先經過8次hash 函數計算對應位數的值是否都爲1,若其中一個不爲1那麼表示不是黑名單郵件,否則爲黑名單郵件, 但是嚴格來說8個位置上都爲1也不一定是,因爲有可能其他黑名單的郵件已經在8個位置上置爲1了,但是概率非常小。

發佈了39 篇原創文章 · 獲贊 7 · 訪問量 5848
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章