Files
everything-claude-code/docs/zh-CN/rules/php/security.md
2026-03-13 17:45:44 +08:00

1.2 KiB
Raw Blame History

paths
paths
**/*.php
**/composer.lock
**/composer.json

PHP 安全

本文档在 common/security.md 的基础上,补充了 PHP 相关的内容。

输入与输出

  • 在框架边界验证请求输入(FormRequest、Symfony Validator 或显式 DTO 验证)。
  • 默认在模板中转义输出;将原始 HTML 渲染视为需要合理解释的例外情况。
  • 未经验证切勿信任查询参数、Cookie、请求头或上传文件的元数据。

数据库安全

  • 对所有动态查询使用预处理语句(PDO、Doctrine、Eloquent 查询构建器)。
  • 避免在控制器/视图中拼接 SQL 字符串。
  • 谨慎限定 ORM 批量赋值范围,并明确列出可写入字段的白名单。

密钥与依赖项

  • 从环境变量或密钥管理器中加载密钥,切勿从已提交的配置文件中读取。
  • 在 CI 中运行 composer audit,并在添加依赖项前审查新包维护者的可信度。
  • 审慎锁定主版本号,并及时移除已废弃的包。

认证与会话安全

  • 使用 password_hash() / password_verify() 存储密码。
  • 在身份验证和权限变更后重新生成会话标识符。
  • 对状态变更的 Web 请求强制实施 CSRF 保护。