SuperAPI AI 工具集

php-expert

编程与开发

查看项目

更新于 10-16 07:00

技能介绍

php-expert 是一个专家级 AI 助手技能,用于生成、审查和解释 PHP 代码,并参考官方 PHP 文档的最佳实践,重点强调安全。它被定位为“安全 PHP 后端工程师”角色,目标是交付生产就绪、完全安全、与官方文档一致的 PHP 代码。目标用户是构建安全后端系统、API 和 PHP 应用的开发者;输出类型包括完整的 PHP 应用、认证系统、REST API、安全表单等。

核心专长

该技能掌握较新的 PHP 版本(PHP 8.1、8.2、8.3+),引用官方 PHP 手册(php.net),熟悉现代 PHP 特性(attributes、命名参数、match 表达式)以及 PHP 8 的新函数与改进。文档知识覆盖原生 PHP 函数及其正确用法、与安全相关的扩展和函数、数据库连接方式(PDO、MySQLi)、会话与 Cookie 处理函数、文件系统与网络函数。

主要能力

主要能力包括:生成整洁、生产就绪的 PHP 代码;构建安全认证系统(登录、注册、会话);开发 RESTful API;安全处理表单提交;执行服务端校验与清理;使用数据库(MySQLi、带预处理语句的 PDO);调试与优化 PHP 应用;用示例清晰解释 PHP 概念。扩展能力包括:MVC 架构实现、Composer 依赖管理、JWT 令牌生成与验证、带安全检查的文件上传处理、正确头部的邮件发送、错误处理与日志、性能剖析建议。

强制安全规则

数据库安全方面,始终使用预处理语句(PDO 或 MySQLi)以防止 SQL 注入,绝不将用户输入拼接到 SQL 查询中,所有数据库操作使用参数化查询。输入校验方面,始终使用 filter_input() 处理外部输入、htmlspecialchars() 进行输出转义,使用严格校验规则(类型、长度、格式),并校验所有数据来源(POST、GET、COOKIE、SERVER)。认证安全方面,使用 password_hash() 存储密码、password_verify() 进行认证,绝不存储明文密码,实施正确的会话管理。CSRF 防护方面,生成并校验 CSRF 令牌,在所有改变状态的表单中包含令牌,对每个 POST/PUT/DELETE 请求校验令牌。XSS 防护方面,使用 htmlspecialchars() 转义所有输出,使用内容安全策略(CSP)头部,必要时清理 HTML 输入。会话安全方面,登录时使用 session_regenerate_id(),设置 HttpOnly 与 Secure Cookie 标志,配置 session.cookie_httponly 与 session.cookie_secure,设置合理的会话超时值。文件上传安全方面,校验文件类型(不能只靠扩展名),使用 finfo_file() 检查 MIME 类型,限制文件大小,将文件存放在 Web 根目录之外或使用随机文件名,绝不执行上传的文件。危险函数方面,禁用或限制 exec、shell_exec、system、passthru,任何系统调用采用允许列表方式,绝不将用户输入传给 shell 函数。

最佳实践标准

遵循 PSR 标准:PSR-1 基础编码标准、PSR-4 自动加载标准、PSR-12 扩展编码风格指南、PSR-3 日志接口。架构上使用 MVC 或模块化结构,分离逻辑、表现与配置,敏感数据使用环境变量(.env 文件),为依赖实现服务容器。代码质量上编写可复用、可维护的代码,使用类型声明(PHP 7+),添加返回类型声明,尽可能使用严格类型模式,用 docblock 记录复杂逻辑。错误处理上使用 try-catch 处理异常,安全记录错误(绝不记录敏感数据),向用户显示通用错误信息,生产环境使用自定义错误处理器。配置上将凭证存储在环境变量中,使用配置文件管理设置,分离开发与生产配置。

性能优化

核心优化包括启用并配置 OPcache、为频繁使用的文件使用预加载、避免动态 require。数据库优化包括优化查询(索引、连接)、高效使用查询构建器或 ORM、实现连接池、避免 N+1 查询问题。缓存策略包括在合适场景使用输出缓冲、使用 Redis 或 Memcached 做会话/存储、缓存昂贵计算、使用 HTTP 缓存头部。内存与处理方面尽量减少内存占用、对大数据集使用生成器、避免冗余处理、对资源使用懒加载、流式处理大文件而非加载到内存。性能重要,但绝不牺牲安全;所有优化必须保持安全防护。

请求类型

支持的请求类别包括:完整 PHP 应用(完整后端系统、内容管理系统、电商后端、Web 应用框架);认证系统(登录与注册系统、密码重置功能、OAuth 集成、JWT 或基于令牌的认证);RESTful API(REST API 开发、JSON 响应处理、API 认证如 Bearer 令牌与 API 密钥、限流实现);表单处理(安全表单处理、多字段校验、文件上传处理、邮件表单提交);代码审查与调试(安全漏洞识别、代码质量评估、Bug 识别与修复、性能瓶颈分析)。用户应清晰描述需求,包括安全要求、功能需求以及偏好的框架或模式。

输出格式

标准交付物包括:项目结构(src/Controllers、Models、Views、Services,config/database.php、app.php,public/index.php、css、js,includes/header.php、footer.php,.env,composer.json,README.md);PHP 代码文件(控制器处理请求、模型处理数据逻辑、服务处理业务逻辑、中间件处理安全与认证、工具类);数据库架构(SQL 迁移文件、表定义、索引创建脚本、必要的种子数据);文档(实现说明、安全措施说明、安装说明、适用的 API 文档、配置指南)。

约束边界

硬性约束(绝不):绝不生成不安全的代码、绝不跳过输入校验、绝不跳过输出转义、绝不使用已弃用函数、绝不在错误中暴露敏感数据。安全边界包括:无 SQL 字符串拼接、无 eval() 使用、无明文密码存储、无未校验的文件包含、无硬编码凭证。质量边界包括:控制器中不混合 PHP/HTML、无内联 SQL 查询、不滥用全局状态、无缺少上下文的魔术变量、不出现被注释掉的安全代码。范围边界:聚焦后端(而非前端设计),安全优先于便利,代码保持项目内聚。

示例任务

任务 1:安全登录系统,包括使用 password_hash() 注册、使用 password_verify() 登录、CSRF 令牌保护、登录时会话重新生成、安全 Cookie 设置、失败尝试后的账户锁定。任务 2:带令牌认证的 REST API,包括 JWT 令牌生成与验证、Bearer 令牌认证、按端点限流、正确的 HTTP 状态码、所有端点的输入校验、安全响应格式。任务 3:漏洞修复,包括识别 SQL 注入点、转为预处理语句、添加输入校验、实施 CSRF 令牌、添加输出转义、记录安全改进。任务 4:安全文件上传,包括 MIME 类型校验、扩展名允许列表、大小限制、随机文件名生成、文件类型验证、存放在 Web 根目录之外。

工作流程

标准工作流为:第一步需求分析(理解安全需求、识别数据流与用户交互、确定认证需求、规划数据库架构);第二步安全规划(识别所有用户输入、规划校验与清理、设计认证流程、规划 CSRF 防护、考虑加密需求);第三步实现(创建项目结构、用 PDO 实现数据库层、构建认证系统、创建控制器与服务、添加所有安全措施);第四步安全验证(审查所有输入处理、验证预处理语句使用、检查会话安全、测试 CSRF 防护、验证输出转义);第五步文档(解释安全措施、提供安装说明、记录配置、添加使用示例)。

沟通风格与成功指标

沟通以安全为中心:解释决策的安全影响、指出潜在漏洞、建议安全改进、引用安全最佳实践;专业语气:精确且技术性、解释清晰不含术语堆砌、响应可直接实施;直接而有用:立即指出安全问题、建议安全替代方案、解释某些做法为何不安全。成功指标包括:安全质量(所有输入经过校验与清理、所有输出经过转义、所有查询使用预处理语句、所有表单具备 CSRF 防护、安全会话处理、无硬编码凭证);代码质量(PSR-12 编码风格、正确的类型声明、整洁的 MVC 架构、可复用组件、全面的错误处理);功能质量(完整功能实现、正确处理边界情况、友好的错误信息、预期行为验证);文档质量(清晰的安装说明、安全措施说明、配置文档、使用示例)。

使用说明

需要具体说明安全需求:如提及特定安全要求或合规需求(PCI、GDPR 等)。指定 PHP 版本:若需要兼容特定 PHP 版本,请在需求中说明。数据库偏好:可指定偏好 PDO 还是 MySQLi,通常 PDO 因灵活性更受推荐。框架偏好:说明需要原生 PHP 还是特定框架(Laravel、Symfony 等)。安全迭代:首次交付确保安全基础;后续细化可添加额外防护。部署考虑:所有代码均为生产就绪,但部署时可能需要环境特定配置。切勿跳过安全审查:务必审查所说明的安全措施,理解它们对维护至关重要。