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配置)的更多相关文章

  1. 【转载】PHP.INI配置:Session配置详细说明教程

    网上有很多PHP.INI文件配置的中文说明,但是对于PHP初学者来说在进行PHP运行环境搭建配置时还是容易一头雾水,今天换一种角度来分享如何进行php.ini配置,以求达到解决实际问题的效果,开篇以P ...

  2. 深入理解php中的ini配置(1)

    这篇文章不会详细叙述某个ini配置项的用途,这些在手册上已经讲解的面面俱到.我只是想从某个特定的角度去挖掘php的实现机制,会涉及到一些php内核方面的知识:-) 使用php的同学都知道php.ini ...

  3. 跟开涛老师学shiro -- INI配置

    之前章节我们已经接触过一些INI配置规则了,如果大家使用过如spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根 ...

  4. php.ini配置中文详解

    ;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置文件是对于新安装的PHP的默认设置. ; 默认情况下,PHP使用此配置文件安装 ; 此配置针对开发目的,并且*不是*针对生产环境 ...

  5. EDIT Ini写Ini配置

    EDIT Ini写Ini配置  uses IniFiles; {$R *.dfm}   function IniFileName:string; begin    Result:=ExtractFil ...

  6. 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错

    遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...

  7. [php基础]PHP.INI配置:Session配置详细说明教程

    网上有很多PHP.INI文件配置的中文说明,但是对于PHP初学者来说在进行PHP运行环境搭建配置时还是容易一头雾水,今天换一种角度来分享如何进行php.ini配置,以求达到解决实际问题的效果,开篇以P ...

  8. Lnmp修改php.ini配置

    http://www.chenruixuan.com/archives/341.html A-A+ 陈瑞轩2014年5月8日07102 次浏览PHP | 工作 要在lnmp系统里面修改php.ini配 ...

  9. Apache shiro集群实现 (二) shiro 的INI配置

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  10. 第四章:shiro的INI配置

    4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全 ...

随机推荐

  1. selenium webdriver 的事件处理

    package www.zr.com; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; imp ...

  2. flask系列八之请求方法、g对象和钩子函数

    一.get方法 ,post方法 post请求在模板中要注意几点: (1)input标签中,要写name来标识这个value的key,方便后台获取. (2)在写form表单的时候,要指定method=' ...

  3. nat123软件windows版

    转自:http://www.nat123.com/pages_8_565.jsp 同时支持内网和公网IP.只要可以上网,即可将所有应用发布外网. >>nat123客户端windows版本软 ...

  4. eclipse egit(分支管理 上)

    这一章比较重要,讲述了Git比svn强大的地方,直接转载廖雪峰老师的文字,更好的理解 什么是分支 和 为什么分支git比svn做的更好 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才 ...

  5. OpenGL顶点缓冲区对象

    [OpenGL顶点缓冲区对象] 显示列表可以快速简单地优化立即模式(glBegin/glEnd)的代码.在最坏的情况下,显示列表的命令被预编译存到命令缓冲区中,然后发送给图形硬件.在最好的情况下,是编 ...

  6. 【原创】6. 在MYSQL++中实现SQL语法中的NULL

    这次要说明的是在MYSQL++中为了实现SQL中的NULL而做出的一系列的举措.我的感觉是Null<T, B>类型通常出现在SSQLS和template Query中比较多. 1. 什么是 ...

  7. 如何上传网站程序(文件浏览器上传网页、FileZilla上传网站程序)

    问题场景: 网页制作完成后,程序需上传至虚拟主机. 注意事项: Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . Linux系统的主机请将全部网页文件直接上传到 /htdoc ...

  8. 面试题:四种Java线程池用法解析 !=!=未看

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 1 2 3 4 5 6 7 8 new Thread(new Runnable() {     @Override ...

  9. QT编译时出现警告 Warning: Class Node implements the interface QGraphicsItem but does not list it in Q_INTERFACES. qobject_cast to QGraphicsItem will not work!

    1.一定要将public QObject放在public QGraphicsItem的前面,并且在该类的定义中添加Q_OBJECT宏. class XXGraphicsItem : public QO ...

  10. Solidity 合约调用合约

    原文地址:https://medium.com/@k3no/making-a-birthday-contract-858fd3f63618 先将datetime合约部署:https://github. ...