PHP の Register_Globals について
PHP の register_globals ディレクティブは、その性質と機能について疑問を引き起こします。詳しく見てみましょう:
Register_Globals とは何ですか?
Register_globals は、$_REQUEST 配列内の要素からグローバル変数を自動的に作成する構成設定です。フォームを送信するとき、入力フィールドの「name」属性に対応する名前を持つ変数に PHP スクリプトでアクセスできます。
たとえば、 register_globals が有効で、フォームがユーザー名フィールドを送信すると、式 ($username = == $_POST['username']) は true と評価されます。
セキュリティへの影響
Register_globals は、悪意のあるユーザーが適切に変数を操作せずに変数を操作できるため、重大なセキュリティ リスクを引き起こします。検証。たとえば、URL に「?authorized=1」を追加すると、攻撃者は認証チェックをバイパスする可能性があります。
グローバル キーワードの区別
register_globals とは異なり、グローバル キーワードでは次のことが可能です。関数のスコープ外で宣言され、関数内でアクセスされる変数。グローバル変数は、使用する前に global キーワードを使用して明示的に宣言する必要があります。
たとえば、次のコードは、グローバル $foo を使用して、buzz() 関数の外で宣言された変数にアクセスします。
$foo = 'bar'; baz(); function baz() { echo $foo; // PHP warns about using an uninitialized variable } buzz(); function buzz() { global $foo; // Enables use of $foo in this scope echo $foo; // Prints 'bar' to screen }
以上がPHP の register_globals ディレクティブはセキュリティ リスクですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。