不同环境的配置会影响代码执行结果。比如有的漏洞看着快成功了但是无法利用就是因为配置问题
1.配置指令作用域
配置可被设定范围
这些模式决定着一个 PHP 的指令在何时何地,是否能够被设定。手册中的每个指令都有其所属的模式。例如有些指令可以在 PHP 脚本中用 ini_set() 来设定,而有些则只能在 php.ini 或 httpd.conf 中。
例如 output_buffering 指令是属于 PHP_INI_PERDIR,因而就不能用 ini_set() 来设定。但是 display_errors 指令是属于 PHP_INI_ALL 因而就可以在任何地方被设定,包括 ini_set()。
模式 | 含义 |
---|---|
PHP_INI_USER | 可在用户脚本(例如 ini_set() )或 Windows 注册表 以及 .user.ini 中设定 |
PHP_INI_PERDIR | 可在 php.ini,.htaccess 或 httpd.conf 中设定 |
PHP_INI_SYSTEM | 可在 php.ini 或 httpd.conf 中设定 |
PHP_INI_ALL | 可在任何地方设定 |
PHP总共有4个配置指令作用域:(PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的)
PHP_INI_PERDIR:指令可以在php.ini、httpd.conf或.htaccess文件中修改
PHP_INI_SYSTEM:指令可以在php.ini 和 httpd.conf 文件中修改
PHP_INI_USER:指令可以在用户脚本中修改
PHP_INI_ALL:指令可以在任何地方修改
总结:就是每个指令有设置模式 设置模式规定了 该指令设定地方
2.示例
register_globals
该设置在On 情况下 会直接把用户get post方式提交的参数注册成全局变量。register_globals 在PHP(<=4.2.3)设置为PHP_INI_ALL
allow_url_include
magic_quotes_gpc
个人感觉没有什么用。除非上传文件修改某个配置。都能上传文件了还要修该什么配置啊。。。仅做了解,实际里好像也有通过上传配置文件修改配置的情况。虽然我没有遇到过
参考:
原文链接:https://blog.csdn.net/bravezhe/article/details/18351975
https://www.php.net/manual/zh/configuration.changes.php 修改配置设定
https://blog.csdn.net/redwand/article/details/104105269/ 上传.htaccess配置文件