使用使用者提供的資料進行資料庫查詢的任何應用程式是sql注入攻擊的乙個潛在目標。資料庫管理員可能無法完全阻止針對其資料庫伺服器的sql注入式攻擊;但是,管理員們和應用程式開發人員可以做一些事情,將這些攻擊的影響最小化。那麼
資料庫管理員可以做什麼呢?
不要讓資料庫和web伺服器放在同一臺計算機上。
使用防火牆或不可路由的ip位址來阻止到資料庫的網際網路訪問。一旦配置完畢,來自資料庫伺服器的資料報將不能被**到網際網路。在web伺服器上需要新增一條路由,這樣才能找到資料庫伺服器。
配置可信任的ip接入和訪問(例如,ipsec),以控制哪些機器能夠與資料庫伺服器通訊。
從資料庫伺服器上移除所有的示例指令碼和應用程式。
為每乙個應用程式的資料庫連線賬戶使用乙個專用的低特權賬戶。不要使用sa、dba、admin。
不要准許使用者或應用程式直接訪問資料庫表。要使用對資料庫擁有有限訪問的應用程式角色。如果應用程式僅需要讀取訪問,就要將資料庫的訪問限制為唯讀。
從生產資料庫中移除未用的儲存過程。
將對應用程式的訪問僅授權給使用者建立的儲存過程。
不要將應用程式的「_any_」授權給作業系統命令或系統儲存過程。
應用程式的設計人員可以做什麼呢?
程式設計人員肩負著保障web應用程式安全的重要責任。在設計和編碼階段加強安全審察才是杜絕程式漏洞的關鍵。大體而言,程式設計者至少應當實施下面的一些措施:
要建立應用程式要生成的特定的通用錯誤訊息。因為,在一次sql注入攻擊期間,通過資料庫生成的預設的錯誤訊息,攻擊者可以獲取有價值的資訊,如**和欄的名稱。
在將使用者服務的輸入提交給資料庫之前,驗證使用者輸入的合法性。僅接受所期望的使用者輸入,並限制其長度。注意,只要可能,使用白名單列表檢查所有的使用者輸入。應用程式伺服器防火牆可被用於檢查所有的輸入,並僅接受那些符合標準的輸入。
在程式開發期間,使用web應用程式掃瞄工具發現**中漏洞。
將web應用程式與sql資料庫隔離開來,將應用程式所要求的所有sql放置在資料庫伺服器上。
使用靜態查詢。如果需要動態查詢,就使用準備好的語句。
使用乙個安全的介面,如ado的command object,使應用程式執行儲存過程。
檢測sql注入漏洞和攻擊
要檢測易於受攻擊的應用程式並不是簡單事情,因為這些漏洞可能存在於面向使用者的任何應用程式介面中。雖然並非所有的sql注入攻擊技術都易於檢測,但資料庫管理員或開發人員可以做以下的事情:
閱讀web伺服器的日誌。有時,在這些日誌中就可輕易地發現sql注入攻擊,因為這時寫往日誌的登入專案要比平常多得多。
查詢http 404和http 500錯誤日誌專案,以及程式生成的檢查使用者輸入的其它的錯誤日誌專案。
使用web應用程式掃瞄工具。這些工具可被用於警告資料庫管理員,告知管理員應用程式中易受sql注入攻擊的地方。
在部署應用程式之前,檢查其中的sql注入因素至關重要。
三大措施將SQL注入 的危害最小化
使用使用者提供的資料進行資料庫查詢的任何應用程式是sql注入 的乙個潛在目標。資料庫管理員可能無法完全阻止針對其資料庫伺服器的sql注入式 但是,管理員們和應用程式開發人員可以做一些事情,將這些 的影響最小化。那麼 資料庫管理員可以做什麼呢?不要讓資料庫和web伺服器放在同一臺計算機上。使用防火牆或...
WEB三大攻擊之 SQL注入與防護
from 定義 sql攻擊 英語 sql injection 簡稱注入攻擊,是發生於應用程式之資料庫層的安全漏洞。簡而言之,是在輸入的字串之中注入sql指令,在設計不良的程式當中忽略了檢查,那麼這些注入進去的指令就會被資料庫伺服器誤認為是正常的sql指令而執行,因此遭到破壞或是入侵。只要是支援批處理...
SQL注入學習總結 三 SQL注入的思路總結
ctf中的sql注入的思路總結 1.拿到題目之後一般是乙個登陸框 大概率盲注或者是報錯,寫指令碼跑 嘗試輸入使用者名稱 admin 和密碼 隨意 檢視其返回結果這裡一般又分為兩種 有返回是密碼錯誤還是使用者名稱錯誤 只是單一的返回登陸失敗 對於第一種情況就可以直接嘗試在username之後輸入pay...