您好,登錄后才能下訂單哦!
漏洞形成原因:用戶輸入的數據被SQL解釋器執行。
數字型 & 字符型,不管注入類型如何,攻擊者的目的只有一點,那就是繞過程序限制,使用戶輸入的數據帶入數據庫執行,利用數據庫的特殊性獲取更多的信息或者更大的權限。
舉個例子:
(1)在頁面URL后面輸入:
user_id=1' and 1=1 order by 4 #
;
(2)加載頁面,將url的參數傳入后臺,后臺執行SQL語句為:
SELECT first_name, last_name FROM users WHERE user_id = '1' and 1=1 order by 4 #'
;
(3)根據SQL語法可知,
#
號將后續的引號注釋了。
order by
是用來查詢列數的,當字段數超過數據庫的字段數,數據庫就會返回錯誤信息,因此,可以利用
order by
來猜測數據庫的字段數。因此,如果熟悉SQL語句,就可以進一步寫入更多的語句,查詢數據庫,導致隱私數據泄漏。
常見利用數據庫注入目的:
(1)查詢數據
(2)讀寫文件
(3)執行命令
數據庫并沒有什么好的辦法直接過濾SQL注入。只負責執行SQL語句,根據SQL語句來返回相關數據。
因此:防御SQL注入,還是得從代碼入手。
根據SQL注入的分類,防御主要分為兩種:
數據類型判斷
和
特殊字符轉義
。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。