PHP如何防止SQL注入式攻擊

2021-05-07 23:21:24 字數 1037 閱讀 9925

由於程式開發人員對程式中的一些資料型別沒有經過檢查、向 mysql 提交正確的資料型別以及特殊資料的轉義,導致程式容易受sql注入式攻擊。就此,php對此已提供了安全的設定及內建函式來防止此問題的發生。以下就個人在開發應用中寫點........

1、magic_quotes_runtime設定

當它開啟時,php的大部分函式自動的給從外部引入的(包括資料庫或者檔案)資料中的溢位字元加上反斜線。如果設定了 magic_quotes_runtime為 on 那麼提交的數值就會自動將 ' 變成 /' 。為了使自己的程式不管伺服器是什麼設定都能正常執行,在開始(或不需要自動轉義的時候)用set_magic_quotes_runtime(0)關掉。當然如果重複給溢位字元加反斜線,那麼字串中就會有多個反斜線,所以這時就要用 set_magic_quotes_runtime()與 get_magic_quotes_runtime()設定和檢測php.ini檔案中magic_quotes_runtime狀態。

2、magic_quotes_gpc設定

magic_quotes_gpc 設定是否自動為gpc(get,post,cookie)傳來的資料中的' " / 加上反斜線。可以用 get_magic_quotes_gpc()檢測系統設定。如果沒有開啟這項設定,可以使用addslashes()函式新增,它的功能就是給資料庫查 詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(')、雙引號(")、反斜線(/)與 nul(null 字元)。即 ' 變成 /', "變成 /"。

3、一些常用的內建函式(addslashes,stripslashes,htmlspecialchars,trim......)

define('magic_quotes_gpc', get_magic_quotes_gpc());

function straddslashes($string, $force = 0, $strip = false)

} else

}return $string;}

PHP如何防止SQL注入式攻擊

方法1 由於程式開發人員對程式中的一些資料型別沒有經過檢查 向 mysql 提交正確的資料型別以及特殊資料的轉義,導致程式容易受sql注入式攻擊。就此,php對此已提供了安全的設定及內建函式來防止此問題的發生。以下就個人在開發應用中寫點.1 magic quotes runtime 設定 當它開啟時...

如何防止SQL注入式攻擊?

所謂sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通過一下的例子更形象的了解sql注入 有乙個login畫面,在這個login畫面上有兩個文字框分別用來輸入使用者名稱和密碼,當使用者點了登入按鈕的時候,會對輸入的使用者...

防止SQL注入式攻擊

防止sql注入式攻擊 sql注入式攻擊是指利用設計上的漏洞攻擊系統。如果動態生成sql語句時沒有對使用者輸入的資料 進行過濾,便會使sql注入式攻擊得逞。例如用下面的sql語句判斷使用者名稱和密碼 txtsql select from user info where userid txtuserid...