php代码审计1(php.ini配置)
1.php.ini基本配置-语法
大小写敏感
directive = value(指令=值)
foo=bar 不等于 FOO=bar
运算符
| & ~ !
空值的表达方法
foo = ;
foo = none;
foo = "none";
2.基本配置
安全模式
safe_mode = on (安全模式,用来限制文档的存取,限制环境变量的存取,控制外部程序的执行,如果为空或者关闭即远程代码执行,但是这个特性在php5.4.0被移除了)
限制环境变量存取
safe_mode_allowed_env_vars = string (指定php程序可以改变的环境变量的前缀,当这个选项值为空时,php可以改变任何环境变量)
外部程序执行目录
safe_mode_exec_dir = "/usr/local/WWW"
禁用函数
disable_functions (用来禁止一些铭感函数的使用,不要把dl()函数也加到禁止列表,攻击者可以利用dl()函数加载自定义的php扩展来突破disable_function,配置禁用函数时可以使用逗号分隔函数名)
com组件
com_allow_dcom = false (php设置在安全模式下(safe_mode),仍旧允许攻击者使用com()函数来创建系统组件来任意命令,推荐关闭这个函数来防止出现次漏洞,使用com函数需要在php.ini中配置extension = php_com_dotnet.dll,如果php版本小于5.4.5则不需要配置)
全局变量注册开关
register_globals = off (默认值为off 在4.2版本之前是默认开启的,当为开启状态时,可以接受来自服务器的各种环境变量,包括表单提交的变量,非常不安全,所以要关闭,off时,服务器端用$GET['name']来获取数据,on时,服务端用post或者get提交的变量,都将使用全局变量的值来接受值)
魔术引号自动过滤
magiv_quotes = on (这个在php5.4.0已经被移除,默认为关闭,如果开启后它会自动把用户提交的sql查询语句进行转换,如单引号,双引号,反斜杠和空字符都加上反斜杠转义,get,post,cookie请求都会收影响,开启它会提高网站的安全性,也可以使用addslashes来转义http的请求数据,或者用stripslashes来删除转义)
远程文件
allow_url_include = off (配置为on的情况下,可以直接包含远程文件,包含变量可控的情况下可直接控制变量来执行php代码)
allow_url_open =on (允许本地php文件通过url重写来打开和关闭写权限,默认的协议提供ftp和http协议来访问文件)
目录权限
expose_php = off (防止了通过http头部泄露php版本信息)
upload_tmp_dir = (上传文件临时保存的目录,如果不设置,则采用系统的临时目录)
open_basedir = /usr/local/WWW (控制php脚本只能访问指定的目录,能够避免php脚本访问,不应该访问文件,一定程度上限制了phpshell的危害)
错误信息
display_errors = on (显示php脚步内部错误,网站发布后建议关闭错误回显)
error_reporting = E_ALL & ~E_NOTICE (将错误级别调到最高,显示所有问题,方便排错)
php代码审计1(php.ini配置)的更多相关文章
- 【转载】PHP.INI配置:Session配置详细说明教程
网上有很多PHP.INI文件配置的中文说明,但是对于PHP初学者来说在进行PHP运行环境搭建配置时还是容易一头雾水,今天换一种角度来分享如何进行php.ini配置,以求达到解决实际问题的效果,开篇以P ...
- 深入理解php中的ini配置(1)
这篇文章不会详细叙述某个ini配置项的用途,这些在手册上已经讲解的面面俱到.我只是想从某个特定的角度去挖掘php的实现机制,会涉及到一些php内核方面的知识:-) 使用php的同学都知道php.ini ...
- 跟开涛老师学shiro -- INI配置
之前章节我们已经接触过一些INI配置规则了,如果大家使用过如spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根 ...
- php.ini配置中文详解
;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置文件是对于新安装的PHP的默认设置. ; 默认情况下,PHP使用此配置文件安装 ; 此配置针对开发目的,并且*不是*针对生产环境 ...
- EDIT Ini写Ini配置
EDIT Ini写Ini配置 uses IniFiles; {$R *.dfm} function IniFileName:string; begin Result:=ExtractFil ...
- 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错
遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...
- [php基础]PHP.INI配置:Session配置详细说明教程
网上有很多PHP.INI文件配置的中文说明,但是对于PHP初学者来说在进行PHP运行环境搭建配置时还是容易一头雾水,今天换一种角度来分享如何进行php.ini配置,以求达到解决实际问题的效果,开篇以P ...
- Lnmp修改php.ini配置
http://www.chenruixuan.com/archives/341.html A-A+ 陈瑞轩2014年5月8日07102 次浏览PHP | 工作 要在lnmp系统里面修改php.ini配 ...
- Apache shiro集群实现 (二) shiro 的INI配置
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- 第四章:shiro的INI配置
4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全 ...
随机推荐
- Linux性能监测:网络篇
网络的监测是所有 Linux 子系统里面最复杂的,有太多的因素在里面,比如:延迟.阻塞.冲突.丢包等,更糟的是与 Linux 主机相连的路由器.交换机.无线信号都会影响到整体网络并且很难判断是因为 L ...
- 第十二章 MySQL触发器(待续)
······
- vc6.0出现“cannot add new member”解决办法
在编辑一个工程的时候,添加一个按钮,对这个按钮产生消息函数 双击按钮之后出现 cannot add new member 网上说删除.clw文件 我发现并没有这个后缀的文件 以下是我的操作办法: ...
- Java面向对象-面向对象编程之基本概念
面向对象这个概念,每本书上的说法定义很多. 我自己根据我的经验,自己归档总结了下, 所谓面向对象,就是 以基于对象的思维去分析和解决问题,万物皆对象: 面向对象经常和面向过程放一起讨论: 这里举例, ...
- JAXB 专题二(BSP接口实战)
BSP下单接口 1.xml格式如下 <?xml version="1.0" encoding="utf-8"?> <Request servi ...
- AE插件之SKYBOX CONVERTER
AE插件之SKYBOX CONVERTER AE插件SKYBOX CONVERTER的主要作用是开发全景视频或者制作全景图片时,对添加的字幕.图片进行扭曲. 下载目录:http://www.gfxca ...
- bash shell笔记5 显示数据
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/521455 知 ...
- Mac mysql-忘记数据库密码
第一步: 关闭mysql服务:苹果->系统偏好设置最下边点mysql 在弹出页面中关闭mysql服务(点击stop mysql server) 第二步: 进入终端输入:cd /usr/local ...
- Jquery缩放
$(document).mousemove(function(e) { if (!!this.move) { var posix = !document.move_target ...
- Unity3D Asset 导入&导出
[Unity3D Asset 导入&导出] 通过Assets->Export Package..菜单可以导出当前选中Assets.若没有选中Assets,则会导出全部assets. 在弹 ...