ホームページ >php教程 >php手册 >注意が必要ないくつかの PHP の脆弱性のまとめ

注意が必要ないくつかの PHP の脆弱性のまとめ

WBOY
WBOYオリジナル
2016-06-13 12:02:111210ブラウズ

注意すべきいくつかの PHP の抜け穴
いくつかの重要な php.ini オプション
グローバルの登録
php>=4.2.0、register_globals が設定されている場合、php.ini の register_globals オプションのデフォルト値はオフです。 On にすると、プログラムはフォームによって送信された変数を含むさまざまな環境変数をサーバーから受け取ることができ、PHP は変数の値を事前に初期化する必要がないため、大きなセキュリティ リスクにつながります。

コードをコピー コードは次のとおりです:

//check_admin() は、現在のユーザー権限を確認するために使用されます。それは管理者であり、 $is_admin 変数を true に設定し、この変数が true であるかどうかを判断してから、いくつかの管理操作を実行します
// 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 インジェクションが通常発生する攻撃者が入力文字列を制御できる場合
//ex2.php


コードをコピー

コードは次のとおりです:

$var = "var"; if (isset($_GET[ "arg"])) { $arg = $_GET["arg"];

= $arg;");

echo "$var =".$ var;
}
?>





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。