代码审计-php核心配置详解

首先,要了解几个定义值,即PHP_INI_*常量的定义

常量含义
PHP_INI_USER该配置选项可在用户的PHP脚本或Windows注册表中设置
PHP_INI_PERDIR该配置选项可在用户的PHP.htaccess或httpd.conf中设置
PHP_INI_SYSYTEM该配置选项可在php.ini或hpptd.conf中设置
PHP_INI_ALL该配置选项可在任何地方中设置
php.ini only该配置选项仅可在php.ini中设置

然后,有几个会影响PHP脚本安全的配置列表以及核心配置选项。
1.register_globals(全局变量注册开关)
该选项值为on时,会直接把用户GET\POST等方式提交上来的参数注册成全局变量并初始化值为参数对应的值,使得提交参数可以直接在脚本中使用。
从PHP 5.3.0起废弃,PHP5.4.0中移除了该选项。
2.allow_url_include(是否包含远程文件)
了这个配置指令对PHP安全的影响不可小觑。该配置选项为ON的情况下,它可以直接包含远程文件。
3.magic_quotes_gpc(魔术引号自动过滤)
只要它被开启,在不存在编码或者其他特殊绕过的情况下,可以使很多漏洞无法被利用。
当该选项为on时,会自动在GET\POST\COOKIE变量中的单引号、双引号、反斜杠(\)以及空字符前加上反斜杠。
4.magic_quotes_runtime(魔术引号自动过滤)
它也是自动在单引号、双引号、反斜杠以及空字符前加上反斜杠。它跟magic_quotes_gpc的区别是,处理的对象不一样,magic_quotes_runtime只对从数据库或者文件中获取的数据进行过滤。
5.magic_quotes_sybase(魔术引号自动过滤)
该指令用于过滤特殊字符,当设置为on时,它会覆盖掉magic_quotes_gpc的配置。这个指令与gpc的共同点是处理的对象一致,即都对GET\POST\COOKIE进行处理。而它们的区别在于处理的方式不一样。magic_quotes_sybase仅仅是**转义了空字符和把单引号变成双引号。**与gpc相比,这个指令使用的更少。
6.safe_mode(安全模式)
安全模式是PHP内嵌的一种安全机制,当为on时,联动可以配置的指令有safe_mode_include_dir,safe_mode_exec_dir,safe_mode_allowed_env_vars,safe_mode_protected_env_vars.指令的配置范围是PHP_INI_SYSTEM.
这个配置会出现下面限制:
(1)所有文件操作函数(例如unlink(),file(),include())等都会受到限制。
(2)通过函数popen(),system(),exec()等函数执行命令或程序会提示错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值