欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php常用的安全過(guò)濾函數(shù)集錦

 更新時(shí)間:2014年10月09日 09:28:54   投稿:hebedich  
由于越來(lái)越多的項(xiàng)目開始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題!因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了!但是,個(gè)人認(rèn)為,我們還是需要了解一下常用的安全處理函數(shù)!

雖然各種開發(fā)框架給我們提供了很好的安全的處理方式,但是,我們還是要注意一下安全問(wèn)題的。
 原因簡(jiǎn)單:很多小的功能和項(xiàng)目是用不到框架的,我們需要自己解決安全問(wèn)題!

①常用的安全函數(shù)有哪些:

復(fù)制代碼 代碼如下:

mysql_real_escape_string()
 addslashes()

②這些函數(shù)的作用:

mysql_real_escape_string()和addslashes()函數(shù)都是對(duì)數(shù)據(jù)中的 單引號(hào)、雙引號(hào)進(jìn)行轉(zhuǎn)義!也就是防止sql注入!
 但是mysql_real_escape_string()考慮了字符集,更加的安全一些!
 經(jīng)過(guò)查閱相關(guān)的資料,可以得出一個(gè)結(jié)論:當(dāng)前的字符集是單字節(jié)的話,這兩個(gè)函數(shù)作用相同,都可以起到轉(zhuǎn)義過(guò)濾的作用,但是,有誰(shuí)會(huì)只是用單字節(jié)呢?尤其是utf8越來(lái)越廣泛的被使用到!

③函數(shù)的用法:

在了解mysql_real_escape_string()和addslashes()這兩個(gè)函數(shù)的用法的時(shí)候,我們必須先了解另外兩個(gè)函數(shù)的含義!

get_magic_quotes_gpc()和get_magic_quotes_runtime(),我們來(lái)比較一下兩個(gè)函數(shù)的異同:

相同:
 
a、兩者都是用來(lái)獲取php.ini配置文件的配置情況的!當(dāng)開啟的時(shí)候返回1,關(guān)閉的時(shí)候返回0!

b、當(dāng)開啟的時(shí)候,都會(huì)對(duì)指定范圍內(nèi)的數(shù)據(jù)進(jìn)行轉(zhuǎn)義過(guò)濾!

不同:
a、兩者的作用范圍不同:
magic_quotes_gpc主要作用于web客戶端,簡(jiǎn)單的說(shuō)主要是對(duì)$_GET、$_POST、$_COOKE中的數(shù)據(jù)進(jìn)行過(guò)濾!
magic_quotes_runtime主要是對(duì)文件中讀取的數(shù)據(jù)或從數(shù)據(jù)庫(kù)查詢得到的數(shù)據(jù)進(jìn)行過(guò)濾!
b、設(shè)置時(shí)間不同:
magic_quotes_gpc不可以在運(yùn)行時(shí)進(jìn)行設(shè)置[只能在重啟服務(wù)器的時(shí)候讀取該設(shè)置]
magic_quotes_runtime可以在運(yùn)行時(shí)設(shè)置!
 注意:所謂運(yùn)行時(shí)設(shè)置,就是,我們可以通過(guò)ini_set()函數(shù),在腳本中對(duì)php.ini文件中的配置進(jìn)行設(shè)置!
 
明白了get_magic_quotes_gpc()和get_magic_quotes_runtime()這兩個(gè)函數(shù)的后,我們就應(yīng)該明白了:當(dāng)我們檢測(cè)到php.ini配置文件開啟了magic_quotes_runtime 和 magic_quotes_gpc的話,就會(huì)自動(dòng)的對(duì)指定范圍內(nèi)的數(shù)據(jù)進(jìn)行轉(zhuǎn)義!如果關(guān)閉的話,我們就需要使用mysql_real_escape_string()[或者addslashes函數(shù)進(jìn)行過(guò)濾]

④舉例說(shuō)明:

1、無(wú)論magic_quotes_gpc和magic_quotes_runctime開啟還是關(guān)閉的情況下getdata.php腳本,都可以對(duì)數(shù)據(jù)進(jìn)行安全轉(zhuǎn)移,內(nèi)容如下:

復(fù)制代碼 代碼如下:

<?php
    if(!get_magic_quotes_gpc()) {
        foreach($_GET as $key=> &$value) {
            $value = mysql_real_escape_string($value);
        }
    }
    if(!get_magic_quotes_runtime()) {
        $sourceDataRecord= file('./sourceData.txt');
        if($sourceDataRecord) {
            foreach($sourceDataRecord as $sourceKey => &$sourceValue) {
                $sourceValue = mysql_real_escape_string($sourceValue);
            }
        }
    }
    $gpcData = implode("\t", $_GET);
    $runtimeData = implode("\t", $sourceDataRecord);
    echo $gpcData, $runtimeData;
?>

 在sourceData.txt中的內(nèi)容如下:

復(fù)制代碼 代碼如下:

" It's anoterh sunday afternoon
 I'm trunning turnning.....turnning around "
 

我們請(qǐng)求getData.php時(shí)的url如下:

php.test.com/safe/getdata.php?name=maw'eibin&age=25
 
執(zhí)行結(jié)果如下:

復(fù)制代碼 代碼如下:

maw\'eibin 25\" It\'s anoterh sunday afternoon\r\n I\'m trunning
 turnning.....turnning around \"

⑤參考資料:

http://www.dbjr.com.cn/article/35868.htm

相關(guān)文章

最新評(píng)論