mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
---
|
||
paths:
|
||
- "**/*.php"
|
||
- "**/composer.lock"
|
||
- "**/composer.json"
|
||
---
|
||
|
||
# PHP 安全
|
||
|
||
> 本文档在 [common/security.md](../common/security.md) 的基础上,补充了 PHP 相关的内容。
|
||
|
||
## 输入与输出
|
||
|
||
* 在框架边界验证请求输入(`FormRequest`、Symfony Validator 或显式 DTO 验证)。
|
||
* 默认在模板中转义输出;将原始 HTML 渲染视为需要合理解释的例外情况。
|
||
* 未经验证,切勿信任查询参数、Cookie、请求头或上传文件的元数据。
|
||
|
||
## 数据库安全
|
||
|
||
* 对所有动态查询使用预处理语句(`PDO`、Doctrine、Eloquent 查询构建器)。
|
||
* 避免在控制器/视图中拼接 SQL 字符串。
|
||
* 谨慎限定 ORM 批量赋值范围,并明确列出可写入字段的白名单。
|
||
|
||
## 密钥与依赖项
|
||
|
||
* 从环境变量或密钥管理器中加载密钥,切勿从已提交的配置文件中读取。
|
||
* 在 CI 中运行 `composer audit`,并在添加依赖项前审查新包维护者的可信度。
|
||
* 审慎锁定主版本号,并及时移除已废弃的包。
|
||
|
||
## 认证与会话安全
|
||
|
||
* 使用 `password_hash()` / `password_verify()` 存储密码。
|
||
* 在身份验证和权限变更后重新生成会话标识符。
|
||
* 对状态变更的 Web 请求强制实施 CSRF 保护。
|