Ubuntu上提升Laravel安全性的实操清单
一 系统与网络加固
二 Laravel应用配置安全
APP_ENV=production、APP_DEBUG=false,APP_URL=https://...;使用 php artisan key:generate 生成唯一APP_KEY。@csrf,API使用Sanctum/Passport的令牌认证。whereRaw/selectRaw 拼接用户输入;如必须使用原生语句,采用参数绑定。SESSION_SECURE_COOKIE=true。lifetime,启用 http_only、same_site 策略,防止会话劫持。Route::middleware('throttle:60,1') 抵御暴力破解与滥用。composer install --no-dev,并运行 php artisan config:cache、route:cache、view:cache 提升性能与安全(变更配置后记得清缓存)。三 文件与权限最小化
storage/、bootstrap/cache 需www-data可写sudo chown -R www-data:www-data /var/www/laravel/storagesudo chown -R www-data:www-data /var/www/laravel/bootstrap/cachesudo chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap/cache.git 目录禁止对外暴露。四 依赖与持续监控
五 快速检查清单
| 检查项 | 期望状态/做法 |
|---|---|
| 系统与安全更新 | 已启用自动/定期更新 |
| 防火墙 | 仅开放 22/80/443 |
| HTTPS | 全站强制,证书有效且自动续期 |
| APP_ENV / APP_DEBUG | production / false |
| APP_KEY | 已生成且唯一 |
| 文件权限 | storage/、bootstrap/cache 对 www-data 可写,其他只读 |
| 依赖安全 | 无已知漏洞(含 Laravel 与 Composer 依赖) |
| 上传安全 | 类型/大小受限,存储隔离,可执行文件禁止 |
| 速率限制 | 登录/注册等关键路由已限流 |
| 日志与监控 | 访问/错误日志集中,异常有告警与追溯 |
以上步骤按“系统→应用→权限→运维”的顺序实施,可在不影响业务连续性的前提下显著提升 Ubuntu 上 Laravel 应用的安全水位。