-1

検索バーを使用してStack Overflowを検索しましたが、これらをオンにするのは悪いことであると述べている投稿が4つしかありません。

理由について完全な理由はありませんか?

だから私はこの質問を投稿して、次のことを見つけます:

  1. なぜこれらの行為は悪いことなのですか?彼らはあなたのサーバーも開放するどんなリスクがありますか?

  2. PHP のスーパーグローバルがそれほど欠点であるのに、なぜまだ残っているのでしょうか?

  3. それらは何に使用できますか?

4

2 に答える 2

3

スーパーグローバル 悪くなく、常にオンになっています。$_GETそれらがなければ、やなどにアクセスできません$_POST

PHP 5.3 で廃止され、PHP 5.4 で削除されたRegister Globalsについて話しているのではないかと思います。彼らは明らかに悪いです。誰でもコード内で任意のグローバル変数をインスタンス化できます。ドキュメントに独自のページを含めて、なぜそれらが悪いのかについて、多くの情報が飛び交っています。

于 2013-02-24T15:34:42.750 に答える
1

register_globalsそれ自体は問題ありません。

以下の組み合わせです。

  • グローバル スコープですべてのコードを実行する

  • 変数を初期化しない

  • その後、ランダム変数が外部入力 (register_globals) から発生します。

悲しいことに、これは一般的なケースであり、PHP3/PHP4 の時代にどのように使用されたかです。これが、過度に一般化されたミーム「register_globals は悪い」が実際に正しい理由です。

それらを有効にして完全に正気のコードを書くことはできますが、それは不必要な落とし穴です。

于 2013-02-24T15:49:37.377 に答える