PHP-XDebug配置
0x01 XDebug介绍php
- XDebug是一个开放源代码的PHP程序调试器,能够用来跟踪,调试和分析PHP的运行情况,功能强大,对审计有很大的帮助
- XDebug实际上是一个.dll文件,一般放在PHP安装目录的ext/php_xdebug.dll。经过配置对应版本的php.ini文件使用
- 当配置XDebug完成后,每次访问一个页面,都会在指定的目录下生成一个文档,文档详细的记录了相关变量和函数的运行时间、源文件等等,可经过此文档,得知PHP的运行情况、某个函数的效率高低等等
0x02 安装配置Debughtml
- 安装
- 若是在PHP的安装目录下没有php_xdebug.dll文件,需到官网下载与本身本机PHP版本对应的XDebug,下载完成以后,放在对应版本/ext/下
- 配置(修改配置文件后需重启Apache服务才可生效)
- 修改对应的PHP版本配置(.ini)文件,配置以下

- 参数解读
- 1937:将分析器输出写入到的目录中,请确保将运行PHP的用户对该目录具备写权限
- 1938:当这个设置被设置为!= 0时,Xdebug在错误状况下生成的堆栈转储也会显示最顶层范围内的全部变量。注意,这可能会生成大量信息,所以在默认状况下关闭
- 1939:日志的输出文件夹,请确保将运行PHP的用户对该目录具备写权限
- 1940:XDebug的文件位置
- 1941:在概要文件输出目录中建立文件
- 1942:当这个设置设置为1时,您能够经过使用XDEBUG_PROFILE GET/POST参数来触发概要文件的生成,或者设置一个名为XDEBUG_PROFILE的cookie。这将把分析器数据写入定义的目录。为了防止分析器为每一个请求生成概要文件,您须要设置xdebug。profiler_enable为0
- 1943:打开自动追踪。自动追踪通常状况下为打开,能够更方便的寻找函数
- 1944:当这个设置被设置为1时,Xdebug将在任何异常或错误被引起时显示一个堆栈跟踪,即便这个异常或错误被实际捕获
- 1945:当这个设置被设置为1时,Xdebug将老是尝试启动一个远程调试会话并尝试链接到一个客户端
- 1946:这个开关控制Xdebug是否应该尝试联系一个调试客户端,这个客户端在主机上监听Xdebug设置的端口。若是没法创建链接,脚本将继续,就像该设置为0同样
- 1947:只能是“dbgp”来表示调试器协议。DBGp协议是惟一受支持的协议
- 1948:远程调试客户机的主机IP,这里固定填写127.0.0.1
- 1949:远程主机上Xdebug试图链接到的端口
- 1950:链接IDE的Key,可自定义
- 其余参数 xdebug.trace_format=0:日志追踪输出目录,0表明人可读,1表明机器可读,2表明html格式,用浏览器打开阅读。通常使用0
- xdebug.trace_options=0:记录添加到文件中方式,0表明覆盖,1表明追加,通常选择覆盖,由于随着时间,文件愈来愈大,不方便审计
- xdebug.collect_params=4:显示内容详细程度,这里选择4,显示全部变量内容和变量名
- xdebug.collect_return=1:显示函数返回值,0为不显示
- xdebug.collect_vars=1:显示当前做用于使用了哪些变量,显示变量名
- xdebug.collect_assignments=1:添加一行显示变量赋值
0x03 XDebug的解密功能浏览器
- XDbug还有一个很强大的功能,它能够自动跟随函数和变量的‘脚步’,解密出加密过的内容
- 经过网页访问加密过的文件,使XDebug生成日志记录文件,从而间接达到解密的目的
- 使用记事本打开日志记录文件便可获取解密后的内容
欢迎关注本站公众号,获取更多信息