该技能面向 Drupal 开发中的安全性,重点覆盖路由、控制器、表单和查询等环节。用途是帮助在编写或审查 Drupal 代码时落实访问控制与输入输出防护。
主要能力包括:SQL 注入防御,强调绝不将用户输入拼接进查询,改用查询构造器或占位符;XSS 防御,始终转义输出,优先使用 #plain_text、Twig 自动转义或安全渲染元素,避免把不可信输入放入 #markup;访问控制,在 routing.yml 中通过 requirements._permission 声明权限,代码中使用 hasPermission 检查,实体查询需调用 accessCheck(TRUE)。
还涵盖 CSRF 防护:表单自动包含令牌,自定义 AJAX 需通过 csrfToken 服务获取并验证令牌。文件上传安全:使用白名单扩展名、大小限制与 FileSecurity 校验,并检查 MIME 类型。敏感数据:不记录敏感信息日志,错误信息保持通用,密钥使用环境变量。
技能给出红标志清单,列出应立即警告的风险写法,如 SQL 字符串拼接、#markup 中带变量、accessCheck(FALSE)、路由缺少 _permission、Twig 中使用 |raw、硬编码密码、eval/exec、对用户数据 unserialize、自定义端点缺少 CSRF 校验、未验证文件上传,以及在类中直接使用 \Drupal:: 而不用依赖注入。
使用方式:在开发或代码审查中对照这些模式检查实现。限制与具体收费、平台支持等信息在资料中暂未提供。