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中对 函数 闭包 的理解
最近学到 函数 闭包的时候,似懂非懂.迷迷糊糊的样子,很是头疼,今天就特意查了下关于闭包的知识,现将我自己的理解分享如下! 一.python 闭包定义 首先,关于闭包,百度百科是这样解释的: 闭包是指 ...
- 双杀 0day 漏洞(CVE-2018-8174)复现
漏洞描述: CVE-2018-8174 是 Windows VBScript Engine 代码执行漏洞. 微软在4月20日早上确认此漏洞,并于5月8号发布了官方安全补丁,对该 0day 漏洞进行了修 ...
- python's thirty day for me 异常处理
---恢复内容开始--- 程序的异常:报错之后程序终止. 异常处理搭配使用: l = ['创建老师','创建学校'] while True: try: for num,item in enumerat ...
- Linq语句:三表联查
var db = new DataEntities2(); var sss = ( from c in db.AIRPORT_HELIPORT ...
- 最长回文子串(Mirrored String II)
Note: this is a harder version of Mirrored string I. The gorillas have recently discovered that the ...
- Hibernate中的一些注解的学习
1.@Column注解 就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系. @Column注解一共有10个属性,这10个属性均为可 ...
- python3导入自定义模块
模块是个好东西啊,大牛们开源共享许多模块也加快了大家开发的速度,许多开源模块可以在这里找到 ↓ https://pypi.python.org/pypi 因为刚入门所有有很多细节不懂,在网上搜寻资料的 ...
- boost 错误报告
#include <Windows.h> #include <boost/asio.hpp> 编译器会报错,fatal error C1189: #error : WinSo ...
- BOOL运算符号(从C#入门经典第五版中摘录)
只总结自己觉得难的哈: (1) var1=!var2; //(非) (2) var1=var2&var3; //(与) (3)var1=var2|var3; //(或) (4 ...
- python3--列表生成式
# Auther: Aaron Fan # 原始的写法:a = []for i in range(10): a.append(i*2)print(a) # 用列表生成式完成上面的写法:a = [i*2 ...