ホームページ  >  記事  >  バックエンド開発  >  PHP セキュリティ - グローバル変数と登録

PHP セキュリティ - グローバル変数と登録

黄舟
黄舟オリジナル
2017-02-23 09:25:211367ブラウズ


1. グローバル変数の登録

WEBアプリケーション開発の初期にCを使ってCGIプログラムを開発した記憶があれば、面倒なフォーム処理についても深く理解できるはずです。 PHP の register_globals 構成オプションがオンになっている場合、複雑な生のフォーム処理は存在せず、パブリック変数が自動的に作成されます。これにより、PHP プログラミングが簡単かつ便利になりますが、セキュリティ上のリスクも伴います。

実際、 register_globals は無害であり、脆弱性を生み出すことはなく、開発者は間違いを犯す必要があります。ただし、アプリケーションの開発およびデプロイ時に register_globals をオフにしなければならない主な理由は 2 つあります。

1 つ目は、セキュリティの脆弱性の数が増えることです

2 つ目は、データのソースが隠蔽されることです。これは、常にデータを追跡するという開発者の責任に反します。

この本のすべての例は、 register_globals がオフになっていて、$_GET などのスーパー パブリック配列を使用していることを前提としています。 そして 代わりに $_POST を使用してください。これらの配列の使用は、 register_globals をオンにしてプログラミングするのとほぼ同じくらい便利で、プログラムのセキュリティが向上するため、多少の不便さは価値があります。

ヒント

register_globals がオンになっている環境にデプロイされるアプリケーションを開発する必要がある場合は、すべての変数を初期化し、error_reporting を次のように設定することが重要です。 E_ALL(または E_ALL | E_STRICT) は、初期化されていない変数について警告します。 register_globals がオンになっている場合、初期化されていない変数を使用すると、ほぼ常にセキュリティ上の脆弱性が生じます。

上記は、PHP セキュリティ グローバル変数と登録の内容です。その他の関連内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。


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