面試寶典系列-Web安全與攻擊

1、SQL注入攻擊(SQL Injection)

攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的字符串,欺騙服務器執行惡意的SQL命令。php

防範方法:
1.檢查變量數據類型和格式
2.過濾特殊符號
3.綁定變量,使用預處理語句html

2、跨網站腳本攻擊(Cross Site Scripting, XSS)

攻擊者將惡意代碼注入到網頁上,其餘用戶在加載網頁時就會執行代碼,攻擊者可能獲得包括但不限於更高的權限(如執行一些操做)、私密網頁內容、會話和cookie等各類內容。這些惡意代碼一般是JavaScript、HTML以及其餘客戶端腳本語言。shell

防範方法:使用htmlspecialchars函數將特殊字符轉換成HTML編碼,過濾輸出的變量跨域

3、跨網站請求僞造攻擊(Cross Site Request Forgeries, CSRF)

是屬於僞造客戶端請求的一種攻擊方式,目的是讓用戶訪問攻擊者僞造的網頁,執行網頁中的惡意腳本,僞造用戶請求,對用戶有登陸權限的網站空間實施攻擊。瀏覽器

防範CSRF要比防範其餘攻擊更加困難,由於CSRF的HTTP請求雖然是攻擊者僞造的,可是倒是由目標用戶發出的,通常常見的防範方法有下面幾種:
一、檢查網頁的來源
二、檢查內置的隱藏變量
三、使用POST,不要使用GET服務器

4、Session劫持攻擊(Session Hijacking)

攻擊者利用各類手段來獲取目標用戶的session id。一旦獲取到session id,那麼攻擊者能夠利用目標用戶的身份來登陸網站,獲取目標用戶的操做權限。
攻擊者獲取目標用戶session id的方法:cookie

  • 暴力破解:嘗試各類session id,直到破解爲止;
  • 計算:若是session id使用非隨機的方式產生,那麼就有可能計算出來;
  • 竊取:使用網絡截獲,xss攻擊等方法得到

防範方法:網絡

  • 按期更改session id
  • 更改session的名稱
  • 關閉透明化session id
  • 設置HttpOnly。經過設置Cookie的HttpOnly爲true,能夠防止客戶端腳本訪問這個Cookie,從而有效的防止XSS攻擊。

5、文件上傳漏洞攻擊(File Upload Attack) 

攻擊者利用程序缺陷繞過系統對文件的驗證與處理策略將惡意代碼上傳到服務器並得到執行服務器端命令的能力。
經常使用的攻擊手段有:session

  • 上傳Web腳本代碼,Web容器解釋執行上傳的惡意腳本;
  • 上傳Flash跨域策略文件crossdomain.xml,修改訪問權限(其餘策略文件利用方式相似);
  • 上傳病毒、木馬文件,誘騙用戶和管理員下載執行;
  • 上傳包含腳本的圖片,某些瀏覽器的低級版本會執行該腳本,用於釣魚和欺詐。

總的來講,利用的上傳文件要麼具有可執行能力(惡意代碼),要麼具有影響服務器行爲的能力(配置文件)。
防範方法:dom

  • 文件上傳的目錄設置爲不可執行;
  • 判斷文件類型,設置白名單。對於圖片的處理,可使用壓縮函數或者resize函數,在處理圖片的同時破壞圖片中可能包含的HTML代碼;
  • 使用隨機數改寫文件名和文件路徑:一個是上傳後沒法訪問;再來就是像shell、.php 、.rar和crossdomain.xml這種文件,都將由於重命名而沒法攻擊;
  • 單獨設置文件服務器的域名:因爲瀏覽器同源策略的關係,一系列客戶端攻擊將失效,好比上傳crossdomain.xml、上傳包含Javascript的XSS利用等問題將獲得解決。

相關文章
相關標籤/搜索