PHP漏洞防範 (四) - SQL注入攻擊(SQL Injection)  

SQL注入攻擊(SQL Injection)是攻擊者在表單中提交精心構造的sql語句,改動原來的sql語句,如果web程序沒有對提交的數據經過檢查,那麼就會造成sql注入攻擊。

SQL注入攻擊的一般步驟:

PHP漏洞防範 (四) - SQL注入攻擊(SQL Injection)  

  1. 攻擊者訪問有SQL注入漏洞的站點,尋找注入點
  2. 攻擊者構造注入語句,注入語句和程序中的SQL語句結合生成新的sql語句
  3. 新的sql語句被提交到數據庫中執行 處理
  4. 數據庫執行了新的SQL語句,引發SQL注入攻擊

 

以前防堵方式可能都是利用 addslashes函數來將單引號'轉換成\',雙引號"轉換成\",反斜槓\轉換成\\,NULL字符加上反斜槓\等等。可是在php 5.3以後資料庫連線多了PDO可以使用,為了使用PDO ORM的特性,可以利用PDO::prepare()來組合參數,這樣子PDO會自動過濾不合法的字元,使用上較為便利。

 

  1. PHP漏洞防範 (一) - register_globals=On的安全性問題 
  2. PHP漏洞防範 (二) - magic_quotes_gpc=Off的安全性問題 
  3. PHP漏洞防範 (三) - 客戶端腳本植入攻擊 

 

文章標籤
創作者介紹

宇若彎彎

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()