ThinkPHP 5 文件包含漏洞分析与利用
本文详细分析 ThinkPHP 5.0-5.1 版本中的文件包含漏洞,该漏洞由模板解析时的变量覆盖引起。通过跟进 $this->assign() 和 fetch() 调用链,揭示 extract() 函数如何被用来覆写 $cacheFile 变量并执行任意文件读取。文章提供了完整的环境搭建步骤、漏洞核心代码路径分析及可利用的 URL PoC。
本文详细分析 ThinkPHP 5.0-5.1 版本中的文件包含漏洞,该漏洞由模板解析时的变量覆盖引起。通过跟进 $this->assign() 和 fetch() 调用链,揭示 extract() 函数如何被用来覆写 $cacheFile 变量并执行任意文件读取。文章提供了完整的环境搭建步骤、漏洞核心代码路径分析及可利用的 URL PoC。

本文系统梳理了PHP环境中获取域名、URL、IP、文件名等常见信息的方法。通过结合$_SERVER全局变量与内置函数(如gethostbyname、dns_get_record),不仅能快速提取当前请求的协议、路径和参数,还能深入查询域名的DNS解析记录、网络连通状态及注册信息(Whois)。代码涵盖基础操作与高级排查场景。
本文介绍如何在 ThinkPHP 6 中通过安装 liliuwei/thinkphp-jump 扩展,恢复经典的 TP5 风格成功与错误页面跳转功能。内容包括 Composer 安装、全局配置文件 jump.php 生成及控制器中的具体调用示例。

本文演示使用PHP原生MySQLi扩展连接数据库,构建一个包含HTML/CSS样式的简易登录系统。通过Form表单提交数据,在login.php中验证用户凭据并记录Cookie状态。文章同时指出了原代码中存在的SQL注入风险及密码存储隐患,并提供基础修复建议,帮助开发者理解从前端交互到后端验证的完整闭环。

在使用VSCode进行PHP开发时,若遇到无法识别PHP命令的问题,通常是因为环境变量未正确配置或扩展设置缺失。本文将指导用户检查PHP版本、安装必要插件、配置settings.json中的可执行文件路径,并整合Xdebug以完善调试环境,彻底解决运行错误。

本文提供了基于PHP的微信access_token本地文件缓存解决方案。通过封装cURL请求、检查过期时间及文件读写操作,实现了Token的自动刷新与持久化存储,有效避免每日调用次数限制并提升业务稳定性。
本文介绍如何使用PHP处理前端传入的二维数组,通过循环遍历提取指定的键值对(如sex和name),过滤掉无关数据。该方法逻辑清晰,能生成结构紧凑的新数组,便于后续安全、高效地存入数据库。

本文详细介绍如何利用PHP Smarty模板引擎结合CSS媒体查询构建响应式网页。内容涵盖创建HTML结构、编写基础样式、配置Smarty控制器以及通过@media规则适配移动端,帮助开发者快速掌握动态网页的自适应设计方法。
在PHP开发中,经常需要提取文件名的后缀以识别类型。本文总结了五种常用方法:利用pathinfo函数直接获取、通过strrpos结合substr定位截取、使用explode分割取末项、正则匹配末尾字符以及反转字符串查找。文章提供各方法的代码示例、运行逻辑分析,并对比了其适用场景与优缺点,帮助开发者在项目中选择最合适的实现方式。
在 ThinkPHP 6 开发中,遇到 "Call to undefined method" 错误通常由命名空间不匹配、缺少基类继承或静态调用方式不当引起。本文将详细解析这三种常见场景,提供修正命名空间路径、继承 think\Controller 以及正确引入 Facade Db 的具体操作步骤,帮助开发者快速定位并修复此类报错。

在PHP中使用cURL发起POST请求时,需根据数据类型设置正确的Content-Type。本文详解form-data、x-www-form-urlencoded和raw(如application/json)三种常见类型的区别与适用场景,并提供通用的httpPost函数实现及调用示例,帮助开发者避免请求格式错误。
本文详细总结了PHP中遍历数组的七种常用方法,包括最基础的foreach和for循环,以及基于内部指针操作的while组合。同时深入解析array_walk、array_map等高级函数的用法与区别,帮助开发者根据实际场景选择最优方案,提升代码效率与可读性。
