php如何防sql注入攻击,php防sql注入攻击(含php6)
網站攻擊最常見的就是sql注入式攻擊了,防范于未然很重要~
PHP可以開啟環境變量配置為POST、GET、REQUEST、COOKIE等用戶傳過來的參數值自動增加轉義字符“\”,以確保這些數據的安全性。
在php.ini配置環境變量magic_quotes_gpc的值為On時開啟自動添加轉義字符,配置為Off時關閉。
get_magic_quotes_gpc()函數就是獲取magic_quotes_gpc的值的函數,On時為1,Off時為0。
開啟后,在使用數據之前恢復正常的數據可采用以下函數qingzzDoStripSlashes()。/**
*?去除多余的轉義字符
*/
function?qingzzDoStripslashes()?{
if?(PHP_VERSION()?
$_GET?=?qingzzStripslashesDeep($_GET);
$_POST?=?qingzzStripslashesDeep($_POST);
$_COOKIE?=?qingzzStripslashesDeep($_COOKIE);
$_REQUEST?=?qingzzStripslashesDeep($_REQUEST);
}
}
/**
*?遞歸去除轉義字符
*/
function?qingzzStripslashesDeep($value)?{
$value?=?is_array($value)???array_map('stripslashesDeep',?$value)?:?stripslashes($value);
return?$value;
}
PHP6去除了magic quotes機制,因此只能自行添加了。/**
*?添加轉義字符
*/
function?qingzzAddslashes()?{
if?(PHP_VERSION?>=?6?||?!get_magic_quotes_gpc())?{
$_GET?=?qingzzAddslashesDeep($_GET);
$_POST?=?qingzzAddslashesDeep($_POST);
$_COOKIE?=?qingzzAddslashesDeep($_COOKIE);
$_REQUEST?=?qingzzAddslashesDeep($_REQUEST);
}
}
/**
*?遞歸增加轉義字符
*/
function?qingzzAddslashesDeep($value)?{
$value?=?is_array($value)???array_map('qingzzAddslashesDeep',?$value)?:?addslashes($value);
return?$value;
}
至于判斷是否轉義,自己增加一個全局變量就好了~
總結
以上是生活随笔為你收集整理的php如何防sql注入攻击,php防sql注入攻击(含php6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php对分数排序,php-MySQL @
- 下一篇: php 未填写时隐藏提交按钮,php -