mysql字句查詢,php如何防止sql注入攻擊?
為了防止sql注入攻擊,首先要明白sql注入攻擊是什么?然后再針對sql攻擊特性去防止。
sql注入攻擊就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
其實,我們可以簡單的理解SQL注入為:未對用戶輸入進行過濾,導致用戶的一些輸入在程序執行時,當做SQL語句的一部分進行執行,從而針對一些敏感操作:OR 1=1 或者 WHERE 1=1 這種條件的加入,使得我們本身的SQL邏輯被跳過執行。
從sql注入攻擊的特性中,我們發現sql攻擊主要是對sql語句或特定sql關鍵詞進行改寫,達到一種欺騙程序的方式,由此,我們只需要把這種欺騙限制的語法進行規范話控制,就能有效的防止sql注入。
那么在PHP中,可以通過簡單的四種方法來有效防止SQL注入:
1、對用戶的輸入進行過濾處理后,在進行操作,如:addslashes()方法或者開啟magic_quotes_gpc方法;
2、針對獲取的數值型數據,進行二次轉換,如intval(),floatval();
3、所有需進行數據庫查詢的變量都使用單引號(')包圍;
4、使用PDO或mysqli來對數據庫進行操作。