SQL注入式攻擊的主要形式有兩種。
1、直接注入式攻擊法
直接將程式碼插入到與SQL命令串聯在一起並使得其以執行的使用者輸入變數。由於其直接與SQL語句捆綁,故也被稱為直接注入式攻擊法。
2、間接攻擊方法
它將惡意程式碼注入要在表中儲存或者作為原資料儲存的字串。在儲存的字串中會連線到一個動態的SQL命令中,以執行一些惡意的SQL程式碼。注入過程的工作方式是提前終止文字字串,然後追加一個新的命令。如以直接注入式攻擊為例。就是在使用者輸入變數的時候,先用一個分號結束當前的語句。然後再插入一個惡意SQL語句即可。由於插入的命令可能在執行前追加其他字串,因此攻擊者常常用註釋標記“—”來終止注入的字串。執行時,系統會認為此後語句位註釋,故後續的文字將被忽略,不背編譯與執行。