PHPセキュリティのメモ

  • 2008.07.24
  • PHP

 

■グローバル変数登録を無効にする

register_globalsを有効にすると、複雑なフォームデータのパースをしてくれるので、PHPアプリを書くのが楽になるメリットを持つ。ただし、開発者が脆弱性の高いPHPアプリを作ってしまう可能性がある。代わりに、$_GETと$_POSTのスーパーグローバル配列を使う。

/usr/local/lib/php.ini

register_globals = off

 

 ■エラー出力先をブラウザから、ログファイルへ変更する

 PHPのエラー情報が、悪意を持った攻撃者に利用されないようにするため。

<php
ini_set( 'error_reporting', E_ALL | E_STRICT );
ini_set( 'display_errors', 'off' );
ini_set( 'log_errors', 'On' );
ini_set( 'error_log', '/export/home/web/logs/php_error_log' );

// ここからプログラムを書き始めると上記が有効になる。

?>

<php 〜 ?>この範囲の中で、有効になる。

php.ini や httpd.conf または .htaccess で設定してもよい。