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