用途
PHP Security Patterns 是一个安全编码模式技能,适用于 PHP 应用开发中的安全加固场景。PHP 应用通常需要处理敏感用户数据、身份认证和金融交易,而其灵活性也带来了潜在漏洞风险。该技能覆盖 PHP 常见安全漏洞的防范:SQL 注入、跨站脚本(XSS)、跨站请求伪造(CSRF)、不安全密码存储、会话劫持和文件包含攻击。
主要能力
技能内容按安全主题组织,包含以下方面:
输入验证与净化:提供邮箱、URL、整数的验证函数,以及字符串净化与 HTML 输出编码函数。示例中包含用户注册数据的验证逻辑,涵盖邮箱格式、年龄范围、用户名格式(3-20 位字母数字下划线)和密码强度(至少 8 位且包含大小写字母与数字)。还展示枚举白名单验证和复杂嵌套数据的验证方式,并强调在应用边界验证输入、在输出前净化。
SQL 注入防护:对比不安全的字符串拼接查询与使用 PDO 预处理语句的安全写法,覆盖命名参数、位置参数、多参数绑定、IN 子句占位符,以及仓库模式(Repository)和查询构建器(QueryBuilder)的示例。核心原则是始终使用参数绑定的预处理语句,绝不将用户输入拼接进 SQL。
XSS 防护:提供 HTML 上下文、JavaScript 上下文、URL 参数和属性的转义函数,展示安全模板渲染类、评论渲染示例、CSP 构建器(可设置 default-src、script-src、style-src、img-src 并发送 Content-Security-Policy 头),以及基于允许标签与属性的富文本清洗类。原则是按上下文转义输出并实施内容安全策略。
CSRF 防护:提供 CSRF 保护类,包含按 action 生成令牌、令牌有效期为 1 小时、使用 hash_equals 进行常量时间比较、一次性使用后失效,以及生成隐藏输入字段的方法。
密码处理与会话安全:描述中提及密码哈希与安全会话模式,用于防止不安全密码存储和会话劫持。
使用方式
该技能以代码示例为主体,每种模式先展示不安全写法,再给出安全实现,便于开发者对照参考或直接套用。内容中包含 PHP 声明严格类型(declare(strict_types=1))的示例。
适用场景
适用于编写或审查 PHP 后端代码、处理用户输入与认证流程、构建需要防范注入与脚本攻击的 Web 应用,以及需要落实纵深防御策略的开发工作。
限制
资料中未提供安装命令、具体平台要求、收费或价格信息,也暂未提供官方文档链接或完整的文件上传安全示例内容。使用时需结合具体项目环境自行验证代码适用性。