PHP代码审计-动态调试配置(附环境)

admin 2026-09-13 05:09:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细介绍了在Windows11环境下配置PHP动态调试环境的方法,涵盖PHPStudy8.1、PHP7.3.4、Xdebug2.7.2及PHPStorm2025的完整配置流程。核心步骤包括在PHPStudy中开启Xdebug扩展并修改php.ini配置项,在PHPStorm中设置调试端口、服务器及路径映射,以及浏览器端安装XdebugHelper插件。文章提供了配置项说明表格和问题记录,可操作性强,适合代码审计人员参考。 综合评分: 75 文章分类: 代码审计,安全工具,安全开发


PHP代码审计-动态调试配置(附环境)

原创

wolfsec wolfsec

风铃Sec

2026年9月11日 13:18 福建

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

环境:
  • Windows 11
  • PHPstudy 8.1
  • PHPStorm 2025
  • Xdebug 2.7.2(phpstudy自带)
  • php 7.3.4-nts

PHPStudy配置

创建一个网站,专门用户与动态调试,网站域名设置为debug.io

选择PHP版本为php7.3.4,并开启php扩展xdebug

通过小皮面板打开php所在文件夹,验证xdebug在CLI中是否成功开启。

找到php.exe文件所在路径,打开cmd,输入如下命令:

php.exe --ri xdebug

输出如上内容,标识Xdebug成功开启,且小皮自带的Xdebug版本为2.7.2。这个时候表示Xdebug在CLI生效,但是不代表此时XdebugWeb端生效,想让XdegubWeb端也生效则需要打开php.exe同目录的一个叫做php.ini文件,在文件末尾贴入如下内容(事实上只要phpstudy中的扩展中开启xdebug插件后以下内容会被自动填充,我们只需要添加xdebug.idekey=”PHPSTORM” 以及修改相对应的host、port和xdebug.remote_enable=On就好了):

[Xdebug]
xdebug.idekey="PHPSTORM"
zend_extension=D:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=Off
xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace
xdebug.profiler_enable=Off
xdebug.profiler_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.profiler
xdebug.remote_enable=On
xdebug.remote_host="debug.io"
xdebug.remote_port=9003
xdebug.remote_handler=dbgp

| 配置项 | 作用 | | — | — | | ‎xdebug.idekey | 指定‎IDE 调试会话的 ‎Key,用于标识调试客户端 | | ‎zend_extension | 加载 ‎Xdebug 扩展‎DLL | | ‎xdebug.remote_enable | 开启远程调试(要设置成On) | | ‎xdebug.remote_host | 指定 IDE 所在主机(由于是在本地调试,所以此处可以直接与 ‎PHPstudy 中设置的网站域名一致) | | ‎xdebug.remote_port | 指定 ‎Xdebug 连接 IDE 的端口 | | ‎xdebug.remote_handler | 指定远程调试协议:‎DBGP(Debugging Protocol) |

在网站根目录中新建一个phpinfo,通过网站访问,出现Xdebug相关内容则表示XdebugWeb端成功生效(不生效可能需要重启网站包括停止网站和重启Web服务器)。

PHPStorm 配置

PHPStorm中输入Ctrl + Alt + S打开设置窗口,设置PHP语言版本和PHP解释器路径。

设置Debug端口为9003,这边的端口号要与php.ini文件中的remote_port值一致。

设置DBGp ProxyIDE keyPHPSTORMHostdebug.io,端口设置为9003。(分别与php.ini中的 xdebug.idekey 、xdebug.remote_hostxdebug.remote_port值一一对应)

设置服务器:Name可以随意设置,Host设置为PHPStudy中网站的域名debug.ioPort设置为网站的端口90(这边的端口是网站的访问端口,而不是php.ini中设置的调试端口。)

设置完HostPort后,勾选底下的Use Path mappings,使用路径映射将PhpStorm看到的项目文件路径,和 PHP/Xdebug实际运行的文件路径对应起来(填写要调试的系统所在的路径),点击Apply,最后再点OK

紧接着开始编辑调试配置,选择Edit Configurations

编辑调试配置如下:

验证需要注意,系统存放的本地目录和网站的访问目录要对应上,填写完毕后点击Validate,如果没问题则会出现绿色打勾的内容。(注:黄色感叹号不用管)

验证成功后,返回上一层窗口,点击debug按钮开始调试。

最后结果如下(记得先打断点):

问题记录:如果选择Debug的端口为9003,就要把原本的9000删除,不然会一直报9000端口繁忙,导致调试失败。(可能是我之前的错误配置导致的)

浏览器配置

安装JetBrains提供的 Xdebug Helper

安装完毕后,URL中的XDEBUG_SESSION_START会消失。

PHPStorm 配置

「PHPStorm」

链接:https://pan.quark.cn/s/37f111bd9f11

「激活教程」

链接:https://pan.quark.cn/s/4b0d7809517c


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:风铃Sec wolfsec wolfsec《PHP代码审计-动态调试配置(附环境)》

评论:0   参与:  0