摘要:由于越來(lái)越多的項(xiàng)目開(kāi)始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了但是,個(gè)人認(rèn)為,我們還是需要了解一下常用的安全處理函數(shù)原因簡(jiǎn)單很多小的功能和項(xiàng)目是用不到框架的,我們需要自己解決安全問(wèn)題常用的安全函數(shù)有
由于越來(lái)越多的項(xiàng)目開(kāi)始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題!因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了!但是,個(gè)人認(rèn)為,我們還是需要了解一下常用的安全處理函數(shù)!
原因簡(jiǎn)單:很多小的功能和項(xiàng)目是用不到框架的,我們需要自己解決安全問(wèn)題!
mysql_real_escape_string()
addslashes()
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)越廣泛的被使用到!
在了解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)開(kāi)啟的時(shí)候返回1,關(guān)閉的時(shí)候返回0!
b、當(dāng)開(kāi)啟的時(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ù)進(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配置文件開(kāi)啟了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開(kāi)啟還是關(guān)閉的情況下getdata.php腳本,都可以對(duì)數(shù)據(jù)進(jìn)行安全轉(zhuǎn)移,內(nèi)容如下:
&$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(" ", $_GET); $runtimeData = implode(" ", $sourceDataRecord); echo $gpcData, $runtimeData; ?>
在sourceData.txt中的內(nèi)容如下:
" 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é)果如下:
⑤參考資料:maw"eibin 25" It"s anoterh sunday afternoon I"m trunning
turnning.....turnning around "
http://www.t086.com/article/4472
php在線手冊(cè)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31875.html
摘要:一常見(jiàn)網(wǎng)站安全漏洞對(duì)于的漏洞,目前常見(jiàn)的漏洞有五種。分別是文件漏洞注入漏洞腳本命令執(zhí)行漏洞全局變量漏洞和文件漏洞。這就是月行胃的注入漏洞。 一、常見(jiàn)PHP網(wǎng)站安全漏洞 對(duì)于PHP的漏洞,目前常見(jiàn)的漏洞有五種。分別是Session文件漏洞、SQL注入漏洞、腳本命令執(zhí)行漏洞、全局變量漏洞和文件漏洞。這里分別對(duì)這些漏洞進(jìn)行簡(jiǎn)要的介紹。 1、session文件漏洞 Session攻擊是黑客最常...
摘要:原文譯文有用的安全函數(shù)譯者安全是編程非常重要的一個(gè)方面。一起看看中常用的可以確保項(xiàng)目安全的函數(shù)?,F(xiàn)在這個(gè)函數(shù)并不被認(rèn)為是安全的,因?yàn)殚_(kāi)源的數(shù)據(jù)庫(kù)可以反向檢查一個(gè)散列值的明文。也不要把絕對(duì)安全寄托在這個(gè)函數(shù)上,否則會(huì)有意想不到的結(jié)果。 showImg(https://segmentfault.com/img/bVksck); 原文:Useful functions to provide...
摘要:在我們向廠商提交漏洞,發(fā)布了相關(guān)的漏洞分析文章后,由于內(nèi)聯(lián)函數(shù)導(dǎo)致的類似安全問(wèn)題在其他的應(yīng)用程序中陸續(xù)曝出。淺析的函數(shù)自帶了一個(gè)內(nèi)聯(lián)函數(shù)用于在應(yīng)用程序中發(fā)送電子郵件。 前言 在我們 挖掘PHP應(yīng)用程序漏洞 的過(guò)程中,我們向著名的Webmail服務(wù)提供商 Roundcube 提交了一個(gè)遠(yuǎn)程命令執(zhí)行漏洞( CVE-2016-9920 )。該漏洞允許攻擊者通過(guò)利用Roundcube接口發(fā)送一...
閱讀 3767·2021-11-24 09:39
閱讀 1911·2021-11-16 11:45
閱讀 638·2021-11-16 11:45
閱讀 1080·2021-10-11 10:58
閱讀 2517·2021-09-09 11:51
閱讀 1966·2019-08-30 15:54
閱讀 717·2019-08-29 13:13
閱讀 3491·2019-08-26 12:18