SQL注入(SQLi)是一種注入攻擊,可以執(zhí)行惡意SQL語句。它通過將任意SQL代碼插入數(shù)據(jù)庫查詢,使攻擊
者能夠完全控制Web應(yīng)用程序后面的數(shù)據(jù)庫服務(wù)器。攻擊者可以使用SQL注入漏洞繞過應(yīng)用程序安全措施;可
以繞過網(wǎng)頁或Web應(yīng)用程序的身份驗證和授權(quán),并檢索整個SQL數(shù)據(jù)庫的內(nèi)容;還可以使用SQL注入來添加,修
改和刪除數(shù)據(jù)庫中的記錄。
如何防止SQL注入攻擊?
不要使用動態(tài)SQL避免將用戶提供的輸入直接放入SQL語句中;最好使用準備好的語句和參數(shù)化查詢,這樣更安全。
不要將敏感數(shù)據(jù)保留在純文本中
加密存儲在數(shù)據(jù)庫中的私有/機密數(shù)據(jù);這樣可以提供了另一級保護,以防攻擊者成功地排出敏感數(shù)據(jù)。
限制數(shù)據(jù)庫權(quán)限和特權(quán)
將數(shù)據(jù)庫用戶的功能設(shè)置為最低要求;這將限制攻擊者在設(shè)法獲取訪問權(quán)限時可以執(zhí)行的操作。
避免直接向用戶顯示數(shù)據(jù)庫錯誤