|
幾個(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技術(shù):需要注意的幾個(gè)PHP漏洞小結(jié),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。