SQL Injection
簡介
是發生於應用程式之資料庫層的安全漏洞。
利用SQL輸入字串中夾帶其他SQL指令,若沒有檢查,這些夾帶進去的指令就會被資料庫伺服器誤認為是正常的SQL指令而執行,因此遭到破壞或是入侵。
造成傷害
資料外洩、竄改
解決辦法
- 參數取代
- 將單引號加上取代為兩個單引號
- 參數化查詢
- 在使用參數化查詢的情況下,資料庫伺服器不會將參數的內容視為SQL指令的一部份來處理,而是在資料庫完成SQL指令的編譯後,才套用參數執行,因此就算參數中含有具破壞性的指令,也不會被資料庫所執行。
Reference
https://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A