簡單來講,注入每每是應用程序缺乏對輸入進行安全型檢查所引發的,攻擊者把一些包含指令的數據發送給解釋器,解釋器會把收到的數據轉換成指令執行。常見的注入包括sql注入,--os-shell,LDAP(輕量目錄訪問協議),xpath(XPath即爲XML路徑語言,它是一種用來肯定XML(標準通用標記語言的子集)文檔中某部分位置的語言),HQL注入等。html
危害以下:web
注入能夠致使數據丟失或被破壞,缺少可審計性或拒絕服務。注入漏洞有時甚至可致使徹底接管主機sql
如何防範:shell
1.使用安全的API,避免使用解釋器數據庫
2.對輸入的特殊的字符進行ESCAPE轉義處理瀏覽器
例子:LIKE '%M%' ESCAPE ‘M’安全
使用ESCAPE關鍵字定義了轉義字符「M」,告訴DBMS將搜索字符串「%M%」中的第二個百分符(%)做爲實際值,而不是通配符服務器
3.使用白名單來規範化的輸入驗證方法cookie
與認證和會話管理相關的應用程序功能每每得不到正確實施,致使了攻擊者能夠破壞密碼,密鑰,會話令牌或實施漏洞冒充其餘用戶身份session
危害以下:
這些漏洞可能致使部分甚至所有帳戶遭受攻擊,一旦攻擊成功,攻擊者就能執行合法的任何操做
如何防範:
1.使用內置的會話管理功能
2.經過認證的問候
3.使用單一的入口點
4.確保在一開始登陸SSL保護的網頁
跨站腳本是最廣泛的web應用安全漏洞。當應用程序在發送給瀏覽器的頁面中包含用戶提供的數據,但沒有通過適當驗證和轉義,就會致使跨站
危害以下:
攻擊者在受害者瀏覽器中執行腳本以劫持用戶會話,插入惡意內容,重定向用戶,使用惡意軟件劫持用戶瀏覽器等
種類:
存儲型,反射型,DOM型
如何防範:
1.驗證輸入
2.編碼輸出(用來確保輸入的字符被視爲數據,而不是做爲html被瀏覽器所解析)
意指一個已經受權的用戶經過更改訪問時的一個參數,從而訪問到本來其並無獲得受權的對象
危害以下:
這種漏洞能夠損壞參數所引用的全部數據
如何防範:
1.使用基於用戶或會話的間接對象訪問,這樣可防止攻擊者直接攻擊爲受權資源
2.訪問檢查:對任何來自不受信源所使用的全部對象進行訪問控制檢查
3.避免在url或網頁中直接引用內部文件名或數據庫關鍵字
4.驗證用戶輸入和url請求,拒絕包含./ ../的請求
跨站請求僞造,利用了網站容許攻擊者預測特定操做全部細節這一特色。因爲瀏覽器自動發送會話cookie等認證憑證,致使攻擊者能夠建立惡意的web頁面來產生僞造請求。這些僞造的請求很難和合法的請求區分開
危害以下:
攻擊者可讓受害者用戶修改任何容許修改的數據,執行任何用戶容許的操做,例如修改密碼,登陸註銷等
如何防範:
1.給每一個HTTP請求添加一個不可預測的令牌,並保證該令牌對每一個用戶會話來講是惟一的。
最好的辦法就是將獨有的令牌包含在隱藏字段中,經過HTTP請求發送,避免在URL中暴露出來
2.要求用戶從新認證或判斷他們是一個真實德用戶
安全配置錯誤能夠發生在一個應用程序堆棧的任何層面,包括平臺,web服務器,應用服務器,數據庫,架構和自定義的代碼。攻擊者經過訪問默認帳戶,未使用的網頁,未安裝的補丁的漏洞,未被保護的文件和目錄等,以得到對系統爲受權的訪問
危害以下;
系統可能在未知的狀況下被徹底攻破,用戶數據可能隨着時間被所有盜走或篡改。甚至致使整個系統被徹底破壞
如何防範:
1.自動化安裝部署
2.及時瞭解並部署每一個環節的軟件更新和補丁信息
3.實施漏洞掃描和安全審計
這個漏洞也是與認證相關的,這種漏洞具體是指在系統已經對url的訪問作了限制的狀況下,但這種限制並無生效。常見的例子是系統沒有對用戶進行角色的檢查,以及用戶經過修改URL的action並指向未被受權頁面就能訪問該頁面一樣是個漏洞
危害以下:
攻擊者很容易就能把網址改爲享有特權的網頁,這樣就可使用匿名或普通用戶訪問未授保護的私人頁面,從而提高未受權功能和相關數據信息
如何防範:
1.檢查管理權限的過程並確保可以容易進行升級和審計
2.默認缺省狀況下,應該拒絕全部訪問的執行權限。對於每一個功能得訪問,須要明確的角色受權
3.檢查每一個功能分配的權限合理有效
在Web應用中重定向是極爲普通的,而且一般重定向所引起的目的是帶有用戶輸入參數的目的url,而若是這些重定向未被驗證,那麼攻擊者就能夠引導用戶訪問他們想要用戶訪問的站點
一樣,轉發也是極爲廣泛的,本質上轉發是在同一個應用中對一個新頁面發送請求,而且有時是用參數來定義目標頁面的。一樣,若是參數未被驗證,那麼攻擊者就能夠利用其來繞過認證或是受權檢查
危害以下:
攻擊者經過重定向能夠試圖安裝惡意軟件或誘使受害人泄露密碼等銘感信息,經過轉發能夠繞過訪問限制
如何防範:
1.避免使用重定向和轉發
2.若是使用了,不要在肯定目標時涉及到用戶參數
3.若是沒法避免使用用戶參數,則應確保目標參數值對於當前用戶是有效的並已受權
若是是須要登陸的,能夠從session當中獲取登陸信息,而後判斷
應用程序使用帶有已知漏洞的組件會破壞應用程序防護系統,可能致使嚴重的數據丟失或服務器接管
如何防範:
1.識別正在使用的組件和版本,包括全部的依賴
2.更新組件或引用的庫文件到最新
3.創建安全策略來管理組件的使用
這個好像沒什麼可說的,就注重對敏感數據的保護便可