Skip to content

SQL Injection

SQL 注入

01你是不是遇到這個 / THE SYMPTOM

我把使用者在輸入框打的字直接接進資料庫查詢語句裡,有人說這樣別人可能在輸入框打一段東西就把我整個資料庫的資料偷走、甚至刪掉,但我不知道這個攻擊叫什麼、也不知道怎麼防。

↑ 如果你點頭了,你要的關鍵字就是 SQL Injection

02這是什麼 / DEFINITION

攻擊者把惡意 SQL 片段藏在使用者輸入裡,因為程式直接用字串拼接組 SQL,導致那段輸入被當成指令執行,可讀取、竄改或刪除整個資料庫。

03什麼時候用 / WHEN TO USE

只要你的程式會把使用者輸入(搜尋字、登入帳密、網址參數、表單欄位)放進資料庫查詢,就一定要防範它。這是後端最基本也最高頻的安全項目。

04怎麼跟 AI 說 / HOW TO ASK

直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:

幫我檢查這段資料庫查詢有沒有 SQL injection 風險,改用 parameterized query(參數化查詢/prepared statement)重寫,不要用字串拼接 SQL。
05常見坑 / WATCH OUT

防護重點不是「過濾髒字」而是「參數化查詢(prepared statement)」——讓資料永遠是資料、不會被當成 SQL 指令。靠 escape 或黑名單關鍵字常常擋不乾淨,別走那條路。

06相關的詞 / RELATED