Sql Injection 可以說是目前網路上最常用的駭客攻擊方式，因為攻擊方式簡單，而且毋須使用其他任何軟體，因他是針對網站漏洞來竊取或破壞網站。由於現在大多網站都有數據庫(Database)，它們多是開源的資料庫，大多免費的內容管理系統都使用Mysql作為數據庫Database。其本上Database只不過是一個記錄方式，使用文字和數字記錄在一個程式上，而這個程式，是一個包裝好的文件，能夠輕易存取。而它的設計，是為了用家（程式員），方便存或取，不過程式員是使用設計好的指令(Command line)，而言埋指令，就是SQL。
SQL植入其實就是程式員錯誤而導致的漏洞，所為人誰無過。程式不過是語言，很多時候我們都總會在遺漏一些邏輯，太過跳脫。Sql Injection藉由一些取巧方式，利用符號裝扮成SQL語法，在漏洞上跳過一些限制，從而改變資料庫的內容。有時能夠或存或取，甚至刪去整個記錄表，在MySql還刪減整個表，叫作Drop Table。當然，一旦能夠存取，我們便能取得整個得數據庫內容，包含帳號和密碼。雖然密碼會被一些加密方式加密例如MD5，儘管他的原生設計是防止逆轉解密的，但中國的駭客在是最早證明他能夠被解密破譯的，其時在2000年代。
以下面就舉一個SQL登入漏洞，用的是MySQL。
假設一個會員登錄網站。我們是用基本的方法登入：輸入帳號和密碼，程式會驗證兩者是否正確。這個程式邏輯是：找查帳號，然後核對密碼。當使用者A，例如輸入名稱帳戶A和密碼123，首先數據庫會走到會員列表Y中，抽取帳戶名稱A。A帳戶內的密碼是123，登入者是在密碼列提交的都是123，那麼程式會將之傳回正確，幾次視為順利登入。
這時SQL語法就會變成：
在MySQL語法中，因為「/*」是被略過的註解，因此在「/*」後面的字串不會被執行。而後面的判斷句「1=1」是成立的，導致程式傳回正確，順利登入此網站成功。
SQL註解大概分為以下三種，不同的SQL程式。
「#」 MySQL ， # 對於 browser 來說是有意義的，那是錨點的意思，所有必須先透過 Url Encode 後的代碼 「%23」 來代替。
由於植入的關鍵在於標點符號，因此我們過濾「’」和「”」可謂更為保險。在SLQ設定時，注意符號類型，例如字元、數字等等。此外，一般密碼加密方式，如MD5已被證明可被可解，更保險方式是每個用戶都加入不同的代碼二次加密，稱為 Salt。
PHP過濾SQL 植入的語法：
Php是一個物件導向程式，加上數據庫，能夠編寫出網頁資料庫系統，讓會員登入或註冊。這些行動都是存取數據庫的記錄。Php本身已設定很多功能，過濾符號是一種專門為SQL設計的設法，在網頁設計的程式員當中，十分基本的技術和常識。只要使用“string mysql_real_escape_string”,便會將所有特別符號之加入”\”，以茲識別。
把這語句，放在用戶提交代碼之內，php會幫您過濾掉那些符號。