用途:在编写任何安全敏感代码前使用,为 Elixir/Phoenix 应用提供安全规则与常见漏洞模式。
主要能力与规则:禁止对用户输入调用 String.to_atom/1,改用 String.to_existing_atom/1 或白名单 case,防原子表耗尽;禁止把用户输入插值进 Ecto fragment 或原始 SQL,改用 ^value 绑定、field/2 或 $1/$2 占位符,防 SQL 注入;禁止重定向到用户可控 URL,改用 ~p"..." 验证路由或允许路径白名单,防开放重定向;禁止在 HEEx 中用 raw/1 渲染用户内容,依赖自动转义或先用 HtmlSanitizeEx 清理,防 XSS;禁止记录密钥,只记录 user_id、email 等标识;令牌比较必须用 Plug.Crypto.secure_compare/2,防时序攻击;不得禁用 Phoenix CSRF 保护,浏览器管线保留 :protect_from_forgery 并使用 <.form>;返回记录前必须做授权与归属校验,防参数篡改与 IDOR;合并前运行 mix deps.audit && mix hex.audit && mix sobelow,HIGH 或 CRITICAL 发现须使 CI 失败。
使用方式:按“识别攻击面—应用规则—运行 mix sobelow --router MyAppWeb.Router 与 mix sobelow --private—按严重级别修复—重跑—完整审计—手动验证”的流程执行。assets/security_checklist.md 提供合并前检查清单。
适用场景:认证、令牌处理、重定向、用户输入处理及安全代码评审。限制:资料未提供具体版本要求、安装步骤或效果数据。