如何防止SQL注入攻擊
SQL注入攻擊(SQL Injection),是攻擊者在表單中提交精心構造的sql語句,改動原來的sql語句,如果web程序沒有對提交的數據經過檢查,那麼就會造成sql注入攻擊。
SQL注入攻擊的一般步驟:
(1) 攻擊者訪問有SQL注入漏洞的站點,尋找注入點
(2) 攻擊者構造注入語句,注入語句和程序中的sql語句結合生成新的sql語句
(3) 新的sql語句被提交到數據庫中執行處理
(4)數據庫執行了新的sql語句,引發SQL注入攻擊
主要的防範方法:
(1) 嚴格檢查輸入參數的數據類型:例如:運用intval函數將數據轉換成整數;運用floatval或doublebval函數分別轉換單精度和雙精度浮點型參數;運用addslashes函數來將單引號轉換成\’,雙引號轉換成\”,反斜槓轉換成\\,NULL字符加上反斜槓\
(2) 數據入庫時,所有數據做轉義或綁定的操作。
推薦的MySql轉義函數:
mysqli_real_escape_string、PDO::quote()