膃・24腴・祉ƒ若ƒ•・≪ƒ若ƒ‰

・・・
・祉‚㏍ƒャƒ・ƒ†・c・‚祉ƒ若ƒ•・≪ƒ若ƒ‰
・祉ƒ若ƒ•・≪ƒ若ƒ‰・・‚ˆ・Š・狗™・’・—・‘・‹・‹・≦Š鴻・・‚‹・∽•乿/A >

PHP・・‚祉ƒ若ƒ•・≪ƒ若ƒ‰・・…掩œ‰・泣ƒ若ƒ・с・‚祉‚㏍ƒャƒ・ƒ†・c・•蕁Œ・’茹f浦・™・‹・Ÿ・・・ 荅・帥с™・‚・“・・•蕁Œ・’PHP・・ƒ・ƒ™・・цВ羆冴—・ˆ・†・・™・‹・・・‚≪ƒ若‚㏍ƒ†・・ƒ・d・ 罩c—・・‚・Š・障›・“・‚・—・‹・—・Web・泣ƒ若ƒ・„OS・・ƒ™・・с・撮・睡・・・‚・障‚Š・上・・„ ・с・・„・Ÿ・・紊š・・・ƒ・ƒ若‚吟€・鴻ķSP・с・‚祉ƒ若ƒ•・≪ƒ若ƒ‰・Œ・上œ・戎・・•・Œ ・・„・障™・‚

・祉‚㏍ƒャƒ・ƒ†・c・‚祉ƒ若ƒ•・≪ƒ若ƒ‰

茵・24-1. ・祉‚㏍ƒャƒ・ƒ†・c・‚祉ƒ若ƒ•・≪ƒ若ƒ‰荐㊤・・‡・cƒ・‚・ƒ†・cƒ–

・・・‡・•・・ƒ・ƒˆ紊‰・眼・・・/TH >
safe_mode"0"PHP_INI_SYSTEM
safe_mode_gid"0"PHP_INI_SYSTEM
safe_mode_include_dirNULLPHP_INI_SYSTEM
safe_mode_exec_dir""PHP_INI_SYSTEM
safe_mode_allowed_env_varsPHP_PHP_INI_SYSTEM
safe_mode_protected_env_varsLD_LIBRARY_PATHPHP_INI_SYSTEM
open_basedirNULLPHP_INI_SYSTEM
disable_functions""PHP_INI_SYSTEM
disable_classes""PHP_INI_SYSTEM
PHP_INI_*・・・臂・・・膣違・ゃ„・・・€ ini_set()・’・‚・с—・・・・•・„・‚

篁ヤ・・・┃絎š・‡・cƒ・‚・ƒ†・cƒ–・・–≪™ ・‹膂≦˜・・・・・‚’腓冴—・障™・‚

・祉ƒ若ƒ•・≪ƒ若ƒ‰・・┃絎š・‡・cƒ・‚・ƒ†・cƒ–・・亜・˜・・・・・‚’篁ヤ・・・ず・—・障™・‚

safe_mode boolean

・祉ƒ若ƒ•・≪ƒ若ƒ‰・’・‰・鴻・™・‹・‹・・‹・‚荅括完・・ ・祉‚㏍ƒャƒ・ƒ†・・/A >・・・・’・”荀с・・•・„・‚

safe_mode_gid boolean

・‡・•・・ƒ・ƒˆ・с・€・祉ƒ若ƒ•・≪ƒ若ƒ‰・・‚・ƒ若ƒ—・潟—・ˆ・†・・™・‹・•・<‚ゃƒ・・ UID・・・莠ƒ・・сƒƒ・・‚’茵Œ・„・障™・‚GID・・・莠ƒ・・™・‹・“・・с“・・ƒ・сƒƒ・・‚’ 膩・‚„・‹・・‚‚・・・—・Ÿ・„・翫ˆ・safe_mode_gid・’・・ƒ潟・—・・・・•・„・‚ ・•・<‚ゃƒ・・‚≪‚・‚祉‚鴻™・‹・›・・VAR CLASS="literal" >UID (FALSE)・’篏睡”・™・‹・‹ GID (TRUE)・’篏睡”・™・‹・‹・九勝・с・障™・‚

safe_mode_include_dir string

・“・・ƒ‡・cƒ・‚・ƒˆ・・・・・・‚泣ƒ–・‡・cƒ・‚・ƒˆ・・‚‚・・‚€鐚‰・・…筝‹・・ƒ•・<‚ゃƒ・Œ ・ゃƒ潟‚・ƒ・ƒ若ƒ‰・•・Œ・‹・翫ˆ・UID/GID ・・ƒ・сƒƒ・・・ƒ・ゃƒ‘・鴻•・Œ・障™・‚鐚ˆ・‡・cƒ・‚・ƒˆ・・・ include_path・・…筝‹・с‚・‹・‹ ・‚・‹・„・・ƒ•・・ƒ‘・鴻ц・菴違•・Œ・‹綽…荀・Œ・‚・Š・障™鐚‰

PHP 4.2.0篁ラ™・・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・・ include_path・・Œ罕˜・・ ・祉ƒŸ・潟ƒ㏍ƒ潟уˆ†・‘・Ÿ綵√・・ц・・違・ƒ‘・鴻‚’・吾・“・・Œ・с・障™・‚

・“・“・фŒ‡絎š・•・Œ・‹・狗™・・・・・ƒ—・・ƒ•・cƒƒ・・‚鴻с‚・Š・‡・cƒ・‚・ƒˆ・・・с・‚・Š・障›・“・‚ ・ゃ障‚Š・"safe_mode_include_dir = /dir/incl" ・・›吾・・ "/dir/include" ・・"/dir/incls" ・・検・鴻吾・‚≪‚・‚祉‚鴻Œ荐怨・•・Œ・障™鐚ˆ・‚・— ・‡・cƒ・‚・ƒˆ・・Œ絖˜・・™・Œ・逸・・‚・‡絎š・—・Ÿ・‡・cƒ・‚・ƒˆ・・・帥‚’荐怨・—・Ÿ・„ ・翫ˆ・・・€・€緇Œ・・‚鴻ƒ・ƒƒ・激ƒャ‚’菴遵Š・—・・・・•・„・‚ 箴‹鐚š"safe_mode_include_dir = /dir/incl/"

safe_mode_exec_dir string

PHP・Œ・祉ƒ若ƒ•・≪ƒ若ƒ‰・у‹•篏œ・™・‹・翫ˆ・system()・„ ・・・・・・A HREF="ref.exec.html" >・—・㏍‚違ƒ・ƒ絎Ÿ茵Œ・∽•乿/A >・’・ ・“・・ƒ‡・cƒ・‚・ƒˆ・・札紊–・ц儀・•・™・‹・“・・・‹’・・•・Œ・障™・‚

safe_mode_allowed_env_vars string

・‚・‹腮・・’医・紊‰・違・┃絎š・・‚祉‚㏍ƒャƒ・ƒ†・d・・・・・・š„・・・・ャ・・‚Š・ˆ・障™・‚ ・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・・・ƒ—・・ƒ•・cƒƒ・・‚鴻‚’・・ƒ潟ƒž・уŒ阪ˆ‡・c・›吾・“・・Œ・с・障™・‚ ・祉ƒ若ƒ•・≪ƒ若ƒ‰・с・€・“・“・・›吾‹・Œ・Ÿ・—・・ƒ•・cƒƒ・・‚鴻у・・障‚‹・医・紊‰・違・‘・’ ・・ƒ若‚吟ƒ若Œ紊‰・眼с・‹・ˆ・†・・・‚Š・障™・‚・‡・•・・ƒ・ƒˆ・с・€・・ƒ若‚吟ƒ若・ PHP_・у・・障‚‹・・・・’医・紊‰・两e.g. PHP_FOO=BAR)・・‘・’・祉ƒƒ・ˆ・™・‹・“・・Œ・с・障™・‚

羈・„: ・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・Œ腥冴・翫ˆ・PHP・・…・・・’医・紊‰・違・ゃ„・・ ・・ƒ若‚吟ƒ若Œ紊‰・眼™・‹・“・・‚’荐怨・—・・—・障„・障™・‚

safe_mode_protected_env_vars string

putenv()・’篏帥c・‚・ƒ潟ƒ‰・・ƒ若‚吟ƒ若Œ紊‰・眼™・‹・・‚’ ・蚊・Ÿ・„・医・紊‰・違‚’・・ƒ潟ƒž・阪ˆ‡・Š・ц・菴違—・障™・‚・“・“・ц┃絎š・•・Œ・Ÿ・医・紊‰・違・ ・‚・—・‚safe_mode_allowed_env_vars・с・┗・・•・Œ・・„・‹・‚・・с‚・c・‚‚ 篆茘激•・Œ・障™・‚

open_basedir string

PHP・・‚ˆ・c・‚・ƒ若ƒ—・潟•・Œ・†・‹・•・<‚ゃƒ・‚’・劫・・・ƒ‡・cƒ・‚・ƒˆ・・ƒ„・・ƒ・ ・・ˆ狗™・—・障™・‚・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・・‚祉ƒ若ƒ•・≪ƒ若ƒ‰・・‚・ƒ凷・・ƒ•・・ ・≪‚・‰・š・・”・•・Œ・障™・‚

箴‹・ˆ・佀open・„fzopen・’篏帥c・‚鴻‚・ƒ・ƒ—・ˆ・Œ・•・<‚ゃƒ・‚’・・ƒ若ƒ—・潟—・ˆ・†・・ ・™・‹・・・・ƒ•・<‚ゃƒ・・・臀・Œ・・сƒƒ・・•・Œ・障™・‚・‡絎š・•・Œ・Ÿ ・‡・cƒ・‚・ƒˆ・・ƒ„・・ƒ若・・・峨・・・‚・cŸ・翫ˆ・PHP・・‚・ƒ若ƒ—・潟‚’・’・・—・障™・‚ ・・・・‚激ƒ潟ƒœ・・ƒƒ・・ƒ・ƒ潟‚・・В羆冴•・Œ・障™・・с€・激ƒ潟ƒœ・・ƒƒ・・ƒ・ƒ潟‚・‚’篏帥c・ ・“・・ˆ狗™・’・ž・帥™・‹・“・・・・・・ƒ純с™・‚

.・・‰劫ˆャ・€ゃс€ ・鴻‚・ƒ・ƒ—・ˆ・Œ・主・・•・Œ・・„・‹・‡・cƒ・‚・ƒˆ・・‚’base-directory・・—・・ 篏睡”・™・‹・“・・‚’・・潟—・障™・‚

Windows筝Š・с・€・‡・cƒ・‚・ƒˆ・・‚’・祉ƒŸ・潟ƒ㏍ƒ潟уŒ阪ˆ‡・c・・・•・„・‚ ・・・・・・・・‚激‚鴻ƒ†・・с・€・‡・cƒ・‚・ƒˆ・・‚’・潟ƒ㏍ƒ潟уŒ阪ˆ‡・c・・・•・„・‚ Apache・≪‚吾ƒャƒ若ƒ・с・€荀・ƒ‡・cƒ・‚・ƒˆ・・‹・‰open_basedir・吾・ƒ‘・・ ・・‡・‹•・„・・・・帥•・Œ・障™・‚

・“・“・фŒ‡絎š・•・Œ・‹・狗™・・・・・ƒ—・・ƒ•・cƒƒ・・‚鴻с‚・Š・‡・cƒ・‚・ƒˆ・・・с・‚・Š・障›・“・‚ ・ゃ障‚Š・"open_basedir = /dir/incl" ・・›吾・・ "/dir/include" ・・"/dir/incls" ・・検・鴻吾・‚≪‚・‚祉‚鴻Œ荐怨・•・Œ・障™鐚ˆ・‚・— ・‡・cƒ・‚・ƒˆ・・Œ絖˜・・™・Œ・逸・・‚・‡絎š・—・Ÿ・‡・cƒ・‚・ƒˆ・・・帥‚’荐怨・—・Ÿ・„ ・翫ˆ・・・€・€緇Œ・・‚鴻ƒ・ƒƒ・激ƒャ‚’菴遵Š・—・・・・•・„・‚ 箴‹鐚š"open_basedir = /dir/incl/"

羈・„: 茲‡・違・ƒ‡・cƒ・‚・ƒˆ・・吾・・綽œ・・.0.7・ц申・・•・Œ・障—・Ÿ・‚

・‡・•・・ƒ・ƒˆ・с・…・・・ƒ•・<‚ゃƒ・・‚・ƒ若ƒ—・潟Œ荐怨・•・Œ・障™・‚

disable_functions string

・祉‚㏍ƒャƒ・ƒ†・・/A >・’・ƒ・・—・Ÿ・„・翫ˆ・・ ・“・・ƒ†・cƒ・‚・ƒ†・cƒ–・’篏帥c・€・劫・・・–∽•違‚’・≦Š鴻・™・‹・“・・Œ・с・障™・‚ ・∽•医・’・・ƒ潟ƒž・阪ˆ‡・Š・ц;荐˜・—・・・・•・„・‚disable_functions・・ ・祉ƒ若ƒ•・≪ƒ若ƒ‰・・襲・帥‚’・—・‘・障›・“・‚

・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・・php.ini筝Š・с‚祉ƒƒ・ˆ・•・Œ・・‘・Œ・違・‚Š・障›・“・‚ 箴‹・ˆ・違€httpd.conf膈‰・с‚祉ƒƒ・ˆ・™・‹・“・・・с・障›・“・‚

disable_classes string

・祉‚㏍ƒャƒ・ƒ†・・/A >・’・ƒ・・—・Ÿ・„・翫ˆ・・ ・“・・ƒ†・cƒ・‚・ƒ†・cƒ–・’篏帥c・‰劫・・・‚・ƒ・‚鴻‚’・≦Š鴻・™・‹・“・・Œ・с・障™・‚ ・・ƒ・‚劫・’・・ƒ潟ƒž・阪ˆ‡・Š・ц;荐˜・—・・・・•・„・‚disable_classs・・ ・祉ƒ若ƒ•・≪ƒ若ƒ‰・・襲・帥‚’・—・‘・障›・“・‚

・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・・php.ini筝Š・с‚祉ƒƒ・ˆ・•・Œ・・‘・Œ・違・‚Š・障›・“・‚ 箴‹・ˆ・違€httpd.conf膈‰・с‚祉ƒƒ・ˆ・™・‹・“・・・с・障›・“・‚

Availability note: ・“・・ƒ‡・cƒ・‚・ƒ†・cƒ–・・HP4.3.2・ц申・・•・Œ・障—・Ÿ・‚

register_globals, display_errors, log_errors・‚・‚・с—・・・・•・„・‚

・祉ƒ若ƒ•・≪ƒ若ƒ‰・Œon・・翫ˆ・PHP・・€ ・上œ・・‚鴻‚・ƒ・ƒ—・ˆ・・‰€・‰・…・Œ・•・<‚ゃƒ・–∽•違・‚ˆ・Š・・†・•・Œ・・„・‹・•・<‚ゃƒ・ ・・‰€・‰・…・・・・眼™・‹・‹・・†・‹・’茯帥鴻障™・‚箴‹・ˆ・違€
-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php 
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
篁ヤ・・・cript.php ・’絎Ÿ茵Œ・™・‹・・€
<?php
readfile
('/etc/passwd');
?>
・祉ƒ若ƒ•・≪ƒ若ƒ‰・Œ・‰・鴻・翫ˆ・篁ヤ・・・‚ˆ・†・・‚・ƒ・ƒ若Œ・阪Š›・•・Œ・障™・‚
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not 
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

UID checking. ・—・‹・—・紊š・・・’医・・・Š・„・・€・喝・・ĢVAR CLASS="literal" >UID・・сƒƒ・・・ ・・ˆ‡・с・・・・ˆ・Š膩・‚„・‹・ĢVAR CLASS="literal" >GID・・сƒƒ・・у・†・с™・‚ ・“・Œ・・A HREF="features.safe-mode.html#ini.safe-mode-gid" >safe_mode_gid・鴻‚ゃƒƒ・・・ ・泣ƒ・若ƒˆ・•・Œ・障™・‚・“・Œ・’On・・™・‹・・ˆ狗™・・粂・„ GID・・сƒƒ・・・€Off鐚ˆ・‡・•・・ƒ・ƒˆ鐚‰ ・・™・‹・・VAR CLASS="literal" >UID・・сƒƒ・・・・‚Š・障™・‚

safe_mode・・撮・・Š・・€ open_basedir・‡・cƒ・‚・ƒˆ・・‚’ ・祉ƒƒ・ˆ・™・‹・・€・・・・ƒ•・<‚ゃƒ・“篏œ・・‰劫・・・ƒ‡・cƒ・‚・ƒˆ・・…筝‹・・帥・ˆ狗™・•・Œ・障™・‚ 箴‹・ˆ・两Apache・・ttpd.conf・・・):
<Directory /docroot>
  php_admin_value open_basedir /docroot 
</Directory>
open_basedir・с‚祉ƒƒ・ˆ・—・Ÿ・・・ ・Œ・˜script.php・’絎Ÿ茵Œ・™・‹・・€篁ヤ・・・‚ˆ・†・・・・œ・・・‚Š・障™:
Warning: open_basedir restriction in effect. File is in wrong directory in 
/docroot/script.php on line 2

・劫・・・–∽•違‚’・≦Š鴻・™・‹・“・・‚‚・с・障™・‚ disable_functions・‡・cƒ・‚・ƒ†・cƒ–・・ php.ini篁ュ・・с・戎・・с・・„・“・・・絵・・—・・・・•・„・‚ ・ゃ障‚Š・httpd.conf筝Š・・ƒ・若ƒ・cƒ・ƒ›・鴻ƒˆ罸・‚・‹・„・・ƒ‡・cƒ・‚・ƒˆ・・・・・ ・∽•違‚’・≦Š鴻・™・‹・“・・・с・・„・・・„・†・“・・・・‚Š・障™・‚ ・‚・—php.ini・•・<‚ゃƒ・・札筝‹・’菴遵Š・—・Ÿ・翫ˆ:
disable_functions readfile,system
篁ヤ・・・‚ˆ・†・・・・œ・・・‚Š・障™:
Warning: readfile() has been disabled for security reasons in 
/docroot/script.php on line 2