跳到主要內容區

Top

SQL 指令植入式攻擊 SQL Injection

SQL Injection 應稱為SQL 指令植入式攻擊,主要是屬於 Input Validation 的問題。目前被翻譯成『資料隱碼』攻擊。
SQL Injection 攻擊法並非植入電腦病毒,它是描述一個利用寫入特殊 SQL 程式碼攻擊應用程式的動作。
換言之,只要提供給使用者輸入的介面,又沒有做到相當嚴密的輸入資料型態管制,就有可能會遭受這種行為的攻擊。
影響的系統 : Apache、IIS、Domino、Netscape 的網站系統,透過 ASP、PHP 與 JSP等程式碼,攻擊破壞各種 SQL 資料庫。影響的系統包括 MSSQL、MySQL、Oracle、Sybase 與 DB2 等。
 

如何防範 SQL Injection : 

  1. 過濾輸入條件中可能隱含的 sql 指令,如INSERT、SELECT、UPDATE 等。進行參數的過慮。ex. intval()、htmlspecialize()。
  2. 針對輸入條件進行規範,如無必要,應規範為僅可接受大小寫英文字母與數字等
  3. 針對特殊的查詢參數進行過濾,如--、' 等可利用replace(xx, " ' ", " ' ' ")進行替換
  4. 進行程式寫作時,應時常檢查程式是否存在有非預期輸入資料的漏洞。
 

網站伺服器方面 :

  1. 定期修補作業系統與網站伺服器的漏洞、避免ASP、PHP與JSP程式源碼洩漏,造成使用者可以直接瀏覽
  2. 更改預設的網站虛擬路徑,如IIS系統不要使用預設的C:\Inetpub\WWWRoot\的目錄
  3. 不提供錯誤訊息給使用者: 攻擊者可藉由回報的錯誤訊息得知資料庫的結構、建議將錯誤輸入重導到適當網頁、�修改C:\WINNT\Help\iisHelp\common\500-100.asp的預設錯誤網頁
參考資料SQL injection 介紹
瀏覽數: