2-3 register_globalsを無効にする [PHPセキュリティー]
PHPセキュリティ
register_globalsを無効にする
POINT
- register_globalsを無効にする
- この機能は PHP 5.3.0 で 非推奨、PHP 5.4.0 で削除
セキュリティーを向上させるために PHPディレクティブ(指示文:php.ini) 設定で register_globals を無効にしましょう。
1 | register_globals = Off |
このPHPディレクティブ register_globals を On にした場合、スーパーグローバル変数のGET変数やPOST変数、環境変数など、PHPの外部から入力されるデータは全て グローバル変数の $変数名 という書式で使用出来るようになります。
1 2 3 4 5 6 | <?php //スーパーグローバル変数のPOST変数 $_POST['name'] = 'taro'; //$_POST['name']をグローバル変数の$nameで使用可能 echo $name; ?> |
結果は
taro
となります。
これは、データがどこから来たのかが不明であり、出処を仮定するしかない 変数を使用することになるということです。スクリプト自体で定義される内部変数は、ユーザーにより送信された汚染リスクのある入力データと混ざってしまいます。この認識がないと非常に危険であり混乱を招くことになります。
このディレクティブ自体が安全でないわけではなく、誤って使用してしまうことで、アプリケーションに重大な脆弱性を生み出すことになります。
無用なリスクをとる必要はないので、このディレクティブはOffにしましょう。
タグ(=記事関連ワード)
タグ: PHPセキュリティー
日付
投稿日:2017年8月6日
最終更新日:
最終更新日:
このカテゴリの他のページ
menu-page
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsecurity-base-register_globals/trackback/