需要注意的幾個(gè)PHP漏洞小結(jié)
更新時(shí)間:2012年02月05日 21:47:57 作者:
幾個(gè)PHP漏洞小結(jié),從事php開(kāi)發(fā)的朋友可以參考下
需要注意的幾個(gè)PHP漏洞
幾個(gè)重要的php.ini選項(xiàng)
Register Globals
php>=4.2.0,php.ini的register_globals選項(xiàng)的默認(rèn)值預(yù)設(shè)為Off,當(dāng)register_globals的設(shè)定為On時(shí),程序可以接收來(lái)自服務(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();
}
?>
這一段代碼沒(méi)有將$is_admin事先初始化為Flase,如果register_globals為On,那么我們直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以繞過(guò)check_admin()的驗(yàn)證
例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ā)生在攻擊者能控制輸入的字符串的時(shí)候
//ex2.php
$var = "var";
if (isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("$var = $arg;");
echo "$var =".$var;
}
?>
幾個(gè)重要的php.ini選項(xiàng)
Register Globals
php>=4.2.0,php.ini的register_globals選項(xiàng)的默認(rèn)值預(yù)設(shè)為Off,當(dāng)register_globals的設(shè)定為On時(shí),程序可以接收來(lái)自服務(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();
}
?>
這一段代碼沒(méi)有將$is_admin事先初始化為Flase,如果register_globals為On,那么我們直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以繞過(guò)check_admin()的驗(yàn)證
例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ā)生在攻擊者能控制輸入的字符串的時(shí)候
//ex2.php
復(fù)制代碼 代碼如下:
$var = "var";
if (isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("$var = $arg;");
echo "$var =".$var;
}
?>
您可能感興趣的文章:
- PHP編程中的常見(jiàn)漏洞和代碼實(shí)例
- ThinkPHP框架任意代碼執(zhí)行漏洞的利用及其修復(fù)方法
- 對(duì)于ThinkPHP框架早期版本的一個(gè)SQL注入漏洞詳細(xì)分析
- php5系列的apache遠(yuǎn)程執(zhí)行漏洞攻擊腳本
- php is_numberic函數(shù)造成的SQL注入漏洞
- PHP程序漏洞產(chǎn)生的原因分析與防范方法說(shuō)明
- php中sql注入漏洞示例 sql注入漏洞修復(fù)
- php漏洞之跨網(wǎng)站請(qǐng)求偽造與防止偽造方法
- PHP漏洞全解(詳細(xì)介紹)
- PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享
- PHP 小心urldecode引發(fā)的SQL注入漏洞
- php中Y2K38的漏洞解決方法實(shí)例分析
相關(guān)文章
PHP文件操作之獲取目錄下文件與計(jì)算相對(duì)路徑的方法
這篇文章主要介紹了PHP文件操作技巧之獲取目錄下文件與計(jì)算相對(duì)路徑的方法,其中獲取目錄下文件方面分為包含子目錄和不包含子目錄兩種情況,需要的朋友可以參考下2016-01-01PHP Header用于頁(yè)面跳轉(zhuǎn)要注意的幾個(gè)問(wèn)題總結(jié)
在PHP中用header("location:test.php")進(jìn)行跳轉(zhuǎn)要注意以下幾點(diǎn),有助于解決一些新手經(jīng)常遇到的問(wèn)題2008-10-10php流量統(tǒng)計(jì)功能的實(shí)現(xiàn)代碼
用php實(shí)現(xiàn)的流量統(tǒng)計(jì)功能代碼,本代碼僅供學(xué)習(xí)交流,其中必有不妥之處。請(qǐng)見(jiàn)諒2012-09-09Zend Framework上傳文件重命名的實(shí)現(xiàn)方法
這篇文章主要介紹了Zend Framework上傳文件重命名的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Zend Framework上傳文件重命名的具體操作步驟與配置、檢測(cè)、重命名操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-11-11深入file_get_contents與curl函數(shù)的詳解
本篇文章是對(duì)file_get_contents與curl函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP中批量生成靜態(tài)html(命令行下運(yùn)行PHP)
這篇文章主要介紹了如何通過(guò)命令行下運(yùn)行PHP命令,減少web請(qǐng)求,讓網(wǎng)站運(yùn)行的更穩(wěn)定,生成速度也更快2014-04-04