ホームページ  >  記事  >  バックエンド開発  >  PHP でよく使用される関数の脆弱性は何ですか?

PHP でよく使用される関数の脆弱性は何ですか?

慕斯
慕斯オリジナル
2021-06-18 16:19:112482ブラウズ

前回の記事では「PHPでファイルをアップロードするには?」をご紹介しました。何に注意する必要がありますか? 》ということで、この記事では引き続き、PHPでよく使われる関数の脆弱性とは何かを紹介していきます。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP でよく使用される関数の脆弱性は何ですか?

PHP で一般的に使用される関数の脆弱性:

  • 抽出変数カバレッジの脆弱性

  • extract 関数: 変数を配列から現​​在のシンボル テーブルにインポートします。これは一部の mvc フレームワークで見つかります。

  • 関数定義の抽出: int extract(array,extract_ rules,prefix)

  • extract0 この関数は次のようになります。各キー名が正当な変数名であるかどうかをチェックし、シンボル テーブル内の既存の変数名と競合するかどうかもチェックします。不正なキー名や競合するキー名の処理は、このパラメータに基づいて決定されます。

extract_rules :

  • EXTR_ OVERWRITE - デフォルト。競合がある場合、既存の変数は上書きされます。

  • EXTR_ SKIP - 競合がある場合は、既存の変数を上書きしないでください。

  • EXTR_ PREFIX. SAME - 競合がある場合は、変数名にプレフィックスを追加します。

  • EXTR_ PREFIX. ALL - すべてを指定します。変数名 プレフィックス prefix.

  • EXTR_ PREFIX.INVALID - 不正な変数名または数値変数名のみにプレフィックスを付けます。

  • ##EXTR_ IF.EXISTS - 上書きします。同じ名前の変数の値は、現在のシンボル テーブルにすでに存在する場合にのみ使用されます。その他は加工しておりません。

  • EXTR_PREFIX_IF _EXISTS - 現在のシンボル テーブルに同じ名前の変数がすでに存在する場合のみ、プレフィックスを付けて変数名を作成すると、それ以外は何も処理されません。

  • EXTR_REFS - 変数を参照として抽出します。インポートされた変数は引き続き配列パラメーターの値を参照します。

コードを例として使用して、現在のカバレッジ テーブルに対する抽出関数の影響を示します。

最初にファイルを作成します。たとえば、現在のカバレッジ テーブルの名前を入力し、この変数を出力します。

<?php
$name = &#39;好久不见&#39;;
echo $name;
?>

コードの結果は次のとおりです。

PHP でよく使用される関数の脆弱性は何ですか?

次に、抽出関数を使用します。そして、現在のカバレッジをサイレントに上書きする配列を定義します 表内の変数は、先ほど書き込んだ「久しぶり」が上書きされることを意味します コードは次のとおりです:

<?php
$name = &#39;好久不见&#39;;
extract(array(&#39;name&#39;=>&#39;再见&#39;));
echo $name;
?>

コード結果は次のとおりです。

PHP でよく使用される関数の脆弱性は何ですか?

推奨される学習: 「PHP ビデオ チュートリアル

以上がPHP でよく使用される関数の脆弱性は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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