需要注意的幾個PHP漏洞小結(jié)
更新時間:2012年02月05日 21:47:57 作者:
幾個PHP漏洞小結(jié),從事php開發(fā)的朋友可以參考下
需要注意的幾個PHP漏洞
幾個重要的php.ini選項
Register Globals
php>=4.2.0,php.ini的register_globals選項的默認(rèn)值預(yù)設(shè)為Off,當(dāng)register_globals的設(shè)定為On時,程序可以接收來自服務(wù)器的各種環(huán)境變量,包括表單提交的變量,而且由于PHP不必事先初始化變量的值,從而導(dǎo)致很大的安全隱患.
例1:
//check_admin()用于檢查當(dāng)前用戶權(quán)限,如果是admin設(shè)置$is_admin變量為true,然后下面判斷此變量是否為true,然后執(zhí)行管理的一些操作
//ex1.php
if (check_admin())
{
$is_admin = true;
}
if ($is_admin)
{
do_something();
}
?>
這一段代碼沒有將$is_admin事先初始化為Flase,如果register_globals為On,那么我們直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以繞過check_admin()的驗證
例2:
//ex2.php
if (isset($_SESSION["username"]))
{
do_something();
}
else
{
echo "您尚未登錄!";
}
?>
//ex1.php
$dir = $_GET["dir"];
if (isset($dir))
{
echo "";
system("ls -al ".$dir);
echo "";
}
?>
mixed eval(string code_str) //eval注入一般發(fā)生在攻擊者能控制輸入的字符串的時候
//ex2.php
$var = "var";
if (isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("$var = $arg;");
echo "$var =".$var;
}
?>
幾個重要的php.ini選項
Register Globals
php>=4.2.0,php.ini的register_globals選項的默認(rèn)值預(yù)設(shè)為Off,當(dāng)register_globals的設(shè)定為On時,程序可以接收來自服務(wù)器的各種環(huán)境變量,包括表單提交的變量,而且由于PHP不必事先初始化變量的值,從而導(dǎo)致很大的安全隱患.
例1:
復(fù)制代碼 代碼如下:
//check_admin()用于檢查當(dāng)前用戶權(quán)限,如果是admin設(shè)置$is_admin變量為true,然后下面判斷此變量是否為true,然后執(zhí)行管理的一些操作
//ex1.php
if (check_admin())
{
$is_admin = true;
}
if ($is_admin)
{
do_something();
}
?>
這一段代碼沒有將$is_admin事先初始化為Flase,如果register_globals為On,那么我們直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以繞過check_admin()的驗證
例2:
復(fù)制代碼 代碼如下:
//ex2.php
if (isset($_SESSION["username"]))
{
do_something();
}
else
{
echo "您尚未登錄!";
}
?>
復(fù)制代碼 代碼如下:
//ex1.php
$dir = $_GET["dir"];
if (isset($dir))
{
echo "";
system("ls -al ".$dir);
echo "";
}
?>
mixed eval(string code_str) //eval注入一般發(fā)生在攻擊者能控制輸入的字符串的時候
//ex2.php
復(fù)制代碼 代碼如下:
$var = "var";
if (isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("$var = $arg;");
echo "$var =".$var;
}
?>
您可能感興趣的文章:
- PHP編程中的常見漏洞和代碼實例
- ThinkPHP框架任意代碼執(zhí)行漏洞的利用及其修復(fù)方法
- 對于ThinkPHP框架早期版本的一個SQL注入漏洞詳細(xì)分析
- php5系列的apache遠(yuǎn)程執(zhí)行漏洞攻擊腳本
- php is_numberic函數(shù)造成的SQL注入漏洞
- PHP程序漏洞產(chǎn)生的原因分析與防范方法說明
- php中sql注入漏洞示例 sql注入漏洞修復(fù)
- php漏洞之跨網(wǎng)站請求偽造與防止偽造方法
- PHP漏洞全解(詳細(xì)介紹)
- PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享
- PHP 小心urldecode引發(fā)的SQL注入漏洞
- php中Y2K38的漏洞解決方法實例分析
相關(guān)文章
PHP下操作Linux消息隊列完成進(jìn)程間通信的方法
當(dāng)我們開發(fā)的系統(tǒng)需要使用多進(jìn)程方式運(yùn)行時,進(jìn)程間通信便成了至關(guān)重要的環(huán)節(jié)。消息隊列(message queue)是Linux系統(tǒng)進(jìn)程間通信的一種方式。2010-07-07
php計數(shù)排序算法的實現(xiàn)代碼(附四個實例代碼)
計數(shù)排序(Counting sort)是一種根據(jù)小整數(shù)鍵對一組對象排序的算法;也就是說,它是一個整數(shù)排序算法。它通過計算具有不同鍵值的對象的數(shù)量,并對這些數(shù)量使用算術(shù)來確定輸出序列中每個鍵值的位置2020-03-03
詳解php內(nèi)存管理機(jī)制與垃圾回收機(jī)制
在PHP中,沒有任何變量指向這個對象時,這個對象就成為垃圾。PHP會將其在內(nèi)存中銷毀;這是PHP的GC垃圾處理機(jī)制。PHP的內(nèi)存管理,分為倆部分, 第一部分是PHP自身的內(nèi)存管理,而第二部分是zend_alloc中描寫的關(guān)于PHP自身的內(nèi)存管理。本文將詳細(xì)介紹這兩個內(nèi)容。2021-05-05
解析PHP的Yii框架中cookie和session功能的相關(guān)操作
這篇文章主要介紹了PHP的Yii框架中cookie和session功能的相關(guān)操作,需要的朋友可以參考下2016-03-03
PHP+AJAX實現(xiàn)無刷新注冊(帶用戶名實時檢測)
PHP+AJAX實現(xiàn)無刷新注冊(帶用戶名實時檢測)...2007-01-01
php更改目錄及子目錄下所有的文件后綴擴(kuò)展名的代碼
今天遇到要改變當(dāng)前目錄下指定類型的文件類型,本來想要用批處理來做這個,結(jié)果沒找到合適。就自己去查了下資料,用Php來處理一下。2010-10-10
php中運(yùn)用http調(diào)用的GET和POST方法示例
調(diào)用的GET和POST方法,使用到的函數(shù)是curl_init, curl_setopt, curl_exec,curl_close,默認(rèn)是GET方法2014-09-09

