PHP 変数のセキュリティに関する簡単な説明

怪我咯
リリース: 2023-03-10 20:58:01
オリジナル
1528 人が閲覧しました

変数変数はPHPの非常に便利な機能です。マニュアルにも記載されていますが、変数変数とは、変数の変数名を動的に設定できることを意味します。
それでは、変数の変数名を動的に設定できる場合、どのようなセキュリティ上の問題が発生するのでしょうか?見てみましょう:

<?php
$a = &#39;phpinfo&#39;;
$a();
?>
ログイン後にコピー

このコードは、変数の型が文字 phpinfo () であるため、変数が phpinfo 関数になり、動的に実行されます。

同じ原則に従って、マニュアルで変数変数の例を引用します:

もちろん、私の記述は少し専門的ではありませんが、変数変数を見つけます。 phpinfo 関数がまだ実行されていることがわかります。

マニュアルと私が挙げた例を読んだことがあるなら、これはまったく魔法ではないと感じるはずです。これは PHP の文法上の特徴です。次に、これを 1 行に進化させます。 2 ネストされた変数の場合は、上記の例に従って変数の内容を自分で入力するだけです。実際には、特定の関数を特定の変数に割り当てるため、最終的に phpinfo 関数が実行され、さまざまな脆弱性や Web シェルのプロトタイプになります。 !

これを見れば、なぜ専門家が私に

PHP マニュアルを読むように頼んだのかがわかるはずです

しかし、専門家はセキュリティが基礎であると言いました。前の例では変数が単一引用符を使用しているのに、最後の例では二重引用符が使用されているのはなぜですか? この問題を考えたことがあるなら、安全に保管してください。きっと大きな牛になるでしょう!

PHP における一重引用符と二重引用符の違いは、依然として変数に関連しています。次の例を見てみましょう:

二重引用符内のコンテンツは PHP の構文変数によって解析されますが、一重引用符内のコンテンツは解析されます。キャラクターとして直接特徴付けることができます。

以上がPHP 変数のセキュリティに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート