SuperAPI AI 工具集

laravel-security

安全与审计

查看项目

更新于 10-15 21:09

技能介绍

用途:为 Laravel 应用提供系统化安全实践,适用于新增认证授权、处理用户输入与文件上传、构建 API、管理密钥环境变量以及加固生产部署等场景。

主要能力:中间件提供基线防护(VerifyCsrfToken、SecurityHeaders);Guard 与 Policy 实施访问控制(auth:sanctum、$this->authorize、can 中间件);Form Request 在进入服务层前验证并塑形输入;RateLimiter 提供滥用防护;加密 cast、批量赋值防护与签名路由保障数据安全。

核心设置:生产环境 APP_DEBUG=false;设置并轮换 APP_KEY;SESSION_SECURE_COOKIE=true、SESSION_SAME_SITE=lax(敏感应用用 strict);配置可信代理以正确识别 HTTPS。会话与 Cookie 加固:SESSION_HTTP_ONLY=true,登录与权限变更时重新生成会话。

认证与密码:API 认证使用 Sanctum 或 Passport,敏感数据优先短时令牌加刷新流程,登出或账号受损时撤销令牌。密码用 Hash::make() 哈希,绝不存明文,重置流程使用 Laravel 密码代理,并可用 Password::min(12) 等规则校验。

授权:模型级用 Policy,控制器与服务中强制执行,路由级用 can 中间件。验证与数据清洗:始终用 Form Request 验证,使用严格规则与类型检查,不信任请求载荷中的派生字段。批量赋值:使用 $fillable 或 $guarded,避免 Model::unguard(),优先 DTO 或显式属性映射。

注入与 XSS:用 Eloquent 或查询构造器参数绑定,避免原生 SQL;Blade 默认转义输出,{!! !!} 仅用于可信已清洗 HTML,富文本用专用库清洗。CSRF:保持 VerifyCsrfToken 启用,表单加 @csrf,SPA 发送 XSRF 令牌,Sanctum 需配置 stateful 域名。

文件上传:校验大小、MIME 与扩展名,尽量存于公共路径之外,必要时做恶意软件扫描。限流:认证与写接口加 throttle,登录、重置密码、OTP 用更严格限制。密钥:绝不提交到版本控制,使用环境变量与密钥管理器,泄露后轮换密钥并使会话失效。敏感列用 encrypted cast。

安全头:按需添加 CSP、HSTS、frame 保护,并用可信代理强制 HTTPS 跳转。CORS:在 config/cors.php 限制来源,认证路由避免通配符。日志:绝不记录密码、令牌或完整卡数据,结构化日志中脱敏。依赖安全:定期运行 composer audit,及时更新 CVE。签名 URL:用 URL::temporarySignedRoute 配合 signed 中间件生成临时防篡改链接。

限制:资料未提供具体版本兼容范围、性能影响数据或完整部署清单,实际落地需结合项目情况评估。