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进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全 ...
随机推荐
- 升级python到2.7
wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar zxvf Python-.tgz cd Python- ./configure ...
- 密码生成工具Cupp
Cupp可根据已知信息生成相应的字典,用来爆破很有帮助 首先先安装一下cupp 命令:apt-get install cupp 参数说明: -v查看cupp版本号 -h 查看参数列表 -l 从gith ...
- Python not readable
try: with open('data.txt','w') as f: for each_line in f: print(each_line)except OSError as reason: p ...
- MySql主从复制原理和环境配置搭建
主从复制原理 实质就是通过二进制的sql文件实现主从复制 MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlo ...
- JAVA的FileOutput/InputStream使用实例
在JAVA中,要读写文件,要使用Stream这个东西. Stream简单来说,可以看做在程序和文件之间打开了一个管道,然后把数据通过这个管道输送到文件或程序中去. FileOutput/InputSt ...
- 十分钟学会Fiddler
一.Fiddler介绍 Fiddler是一个http抓包改包工具,fiddle英文中有“欺骗.伪造”之意,与wireshark相比它更轻量级,上手简单,因为只能抓http和https数据包,所以在针对 ...
- Deep Learning(深度学习)学习笔记整理系列
http://blog.csdn.net/zouxy09/article/details/8775360 http://blog.csdn.net/zouxy09/article/details/87 ...
- BurpSuite—-Spider模块(蜘蛛爬行)
一.简介 Burp Spider 是一个映射 web 应用程序的工具.它使用多种智能技术对一个应用程序的内容和功能进行全面的清查. Burp Spider 通过跟踪 HTML 和 JavaScript ...
- 【292】Python 关于中文字符串的操作
参考:什么是字符编码? 参考:Unicode 和 UTF-8 有何区别? 参考:python中文decode和encode转码 一.相关说明 Python 中关于字符串的操作只限于英文字母,当进行中文 ...
- 缓存数据库redis
什么是Redis? Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命 ...