ThinkPHP 5 文件包含漏洞分析与利用

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

ThinkPHP 5 文件包含漏洞分析与利用

PHP获取域名及关联信息:从URL解析到DNS查询全解

本文系统梳理了PHP环境中获取域名、URL、IP、文件名等常见信息的方法。通过结合$_SERVER全局变量与内置函数(如gethostbyname、dns_get_record),不仅能快速提取当前请求的协议、路径和参数,还能深入查询域名的DNS解析记录、网络连通状态及注册信息(Whois)。代码涵盖基础操作与高级排查场景。

PHP原生MySQLi实现简易登录:代码与流程解析

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

PHP原生MySQLi实现简易登录:代码与流程解析

PHP二维数组数据过滤:提取指定字段并入库

本文介绍如何使用PHP处理前端传入的二维数组,通过循环遍历提取指定的键值对(如sex和name),过滤掉无关数据。该方法逻辑清晰,能生成结构紧凑的新数组,便于后续安全、高效地存入数据库。

PHP二维数组数据过滤:提取指定字段并入库

PHP获取文件名后缀的5种常用实现方法

在PHP开发中,经常需要提取文件名的后缀以识别类型。本文总结了五种常用方法:利用pathinfo函数直接获取、通过strrpos结合substr定位截取、使用explode分割取末项、正则匹配末尾字符以及反转字符串查找。文章提供各方法的代码示例、运行逻辑分析,并对比了其适用场景与优缺点,帮助开发者在项目中选择最合适的实现方式。

PHP cURL POST 请求三种 Content-Type 类型详解与实现

在PHP中使用cURL发起POST请求时,需根据数据类型设置正确的Content-Type。本文详解form-data、x-www-form-urlencoded和raw(如application/json)三种常见类型的区别与适用场景,并提供通用的httpPost函数实现及调用示例,帮助开发者避免请求格式错误。

PHP遍历数组最常用的7种方式详解

本文详细总结了PHP中遍历数组的七种常用方法,包括最基础的foreach和for循环,以及基于内部指针操作的while组合。同时深入解析array_walk、array_map等高级函数的用法与区别,帮助开发者根据实际场景选择最优方案,提升代码效率与可读性。

PHP遍历数组最常用的7种方式详解