摘要:由于越來越多的項目開始使用框架,所以,很多的程序員也不在關心安全的問題因為框架已經幫我們幾乎完美的處理了但是,個人認為,我們還是需要了解一下常用的安全處理函數原因簡單很多小的功能和項目是用不到框架的,我們需要自己解決安全問題常用的安全函數有
由于越來越多的項目開始使用框架,所以,很多的程序員也不在關心安全的問題!因為框架已經幫我們幾乎完美的處理了!但是,個人認為,我們還是需要了解一下常用的安全處理函數!
原因簡單:很多小的功能和項目是用不到框架的,我們需要自己解決安全問題!
mysql_real_escape_string()
addslashes()
mysql_real_escape_string()和addslashes()函數都是對數據中的 單引號、雙引號進行轉義!也就是防止sql注入!
但是mysql_real_escape_string()考慮了字符集,更加的安全一些!
經過查閱相關的資料,可以得出一個結論:當前的字符集是單字節的話,這兩個函數作用相同,都可以起到轉義過濾的作用,但是,有誰會只是用單字節呢?尤其是utf8越來越廣泛的被使用到!
在了解mysql_real_escape_string()和addslashes()這兩個函數的用法的時候,我們必須先了解另外兩個函數的含義!
get_magic_quotes_gpc()和get_magic_quotes_runtime(),我們來比較一下兩個函數的異同:
相同:
a、兩者都是用來獲取php.ini配置文件的配置情況的!當開啟的時候返回1,關閉的時候返回0!
b、當開啟的時候,都會對指定范圍內的數據進行轉義過濾!
不同:
a、兩者的作用范圍不同:
magic_quotes_gpc主要作用于web客戶端,簡單的說主要是對$_GET、$_POST、$_COOKE中的數據進行過濾!
magic_quotes_runtime主要是對文件中讀取的數據進行過濾!
b、設置時間不同:
magic_quotes_gpc不可以在運行時進行設置[只能在重啟服務器的時候讀取該設置]
magic_quotes_runtime可以在運行時設置!
注意:所謂運行時設置,就是,我們可以通過ini_set()函數,在腳本中對php.ini文件中的配置進行設置!
明白了get_magic_quotes_gpc()和get_magic_quotes_runtime()這兩個函數的后,我們就應該明白了:當我們檢測到php.ini配置文件開啟了magic_quotes_runtime 和 magic_quotes_gpc的話,就會自動的對指定范圍內的數據進行轉義!如果關閉的話,我們就需要使用mysql_real_escape_string()[或者addslashes函數進行過濾]
④舉例說明:1、無論magic_quotes_gpc和magic_quotes_runctime開啟還是關閉的情況下getdata.php腳本,都可以對數據進行安全轉移,內容如下:
&$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中的內容如下:
" It"s anoterh sunday afternoon
I"m trunning turnning.....turnning around "
我們請求getData.php時的url如下:
php.test.com/safe/getdata.php?name=maw"eibin&age=25
執行結果如下:
⑤參考資料:maw"eibin 25" It"s anoterh sunday afternoon I"m trunning
turnning.....turnning around "
http://www.t086.com/article/4472
php在線手冊
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31875.html
摘要:一常見網站安全漏洞對于的漏洞,目前常見的漏洞有五種。分別是文件漏洞注入漏洞腳本命令執行漏洞全局變量漏洞和文件漏洞。這就是月行胃的注入漏洞。 一、常見PHP網站安全漏洞 對于PHP的漏洞,目前常見的漏洞有五種。分別是Session文件漏洞、SQL注入漏洞、腳本命令執行漏洞、全局變量漏洞和文件漏洞。這里分別對這些漏洞進行簡要的介紹。 1、session文件漏洞 Session攻擊是黑客最常...
摘要:原文譯文有用的安全函數譯者安全是編程非常重要的一個方面。一起看看中常用的可以確保項目安全的函數?,F在這個函數并不被認為是安全的,因為開源的數據庫可以反向檢查一個散列值的明文。也不要把絕對安全寄托在這個函數上,否則會有意想不到的結果。 showImg(https://segmentfault.com/img/bVksck); 原文:Useful functions to provide...
摘要:在我們向廠商提交漏洞,發布了相關的漏洞分析文章后,由于內聯函數導致的類似安全問題在其他的應用程序中陸續曝出。淺析的函數自帶了一個內聯函數用于在應用程序中發送電子郵件。 前言 在我們 挖掘PHP應用程序漏洞 的過程中,我們向著名的Webmail服務提供商 Roundcube 提交了一個遠程命令執行漏洞( CVE-2016-9920 )。該漏洞允許攻擊者通過利用Roundcube接口發送一...
閱讀 3723·2021-11-24 09:39
閱讀 1869·2021-11-16 11:45
閱讀 615·2021-11-16 11:45
閱讀 1028·2021-10-11 10:58
閱讀 2475·2021-09-09 11:51
閱讀 1940·2019-08-30 15:54
閱讀 686·2019-08-29 13:13
閱讀 3465·2019-08-26 12:18