1. 保持系统与依赖更新
定期更新Debian系统和Laravel及其依赖项,是修复已知安全漏洞的核心措施。执行sudo apt update && sudo apt upgrade更新系统;使用composer update更新Laravel框架及依赖包;集成dependabot或renovate等自动化工具,实现依赖包的自动更新与安全漏洞监控。
2. 强化系统级安全配置
ufw限制入站/出站流量,仅允许必要端口(如HTTP 80、HTTPS 443、SSH 22),执行sudo ufw allow 22/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw enable。/etc/ssh/sshd_config,设置Port 2222(自定义端口)、PermitRootLogin no(禁用root远程登录),启用SSH密钥认证(PubkeyAuthentication yes),重启SSH服务sudo systemctl restart sshd。libpam-cracklib模块增强密码复杂度,编辑/etc/pam.d/common-password,添加minlen=12(最小长度12)、dcredit=-1(至少1个数字)等规则。3. 配置Laravel应用安全
@csrf指令,避免非法表单提交。DB::raw()),减少注入风险。Validator类验证输入数据的格式(如邮箱、URL),通过e()函数或{{ }}语法消毒输出,防止XSS攻击。laravel-permission包管理用户角色与权限,细化访问控制(如@can('edit-post', $post))。4. 实施HTTPS与安全头
.env中设置APP_URL=https://yourdomain.com,创建forcehttps中间件,通过redirect()->secure()将HTTP请求重定向至HTTPS,在Kernel.php中注册该中间件。X-Content-Type-Options "nosniff"(防止MIME类型嗅探)、X-Frame-Options "SAMEORIGIN"(防止点击劫持)、X-XSS-Protection "1; mode=block"(启用XSS防护);或创建自定义中间件设置Content-Security-Policy(限制资源加载来源,如default-src 'self'; script-src 'self' 'nonce-随机值')。5. 定期漏洞扫描与监控
使用enlightn/security-checker工具扫描依赖包中的安全漏洞,执行composer require --dev enlightn/security-checker && php artisan security:check;启用Laravel详细日志记录(APP_LOG_LEVEL=debug),定期检查storage/logs/laravel.log,监控异常活动(如频繁登录失败、非法请求)。
6. 敏感信息与文件权限管理
.env文件中,添加.env至.gitignore,避免提交至版本控制系统;使用php artisan config:cache缓存配置,防止敏感信息泄露。755(目录)、644(文件),避免使用777等宽松权限;将storage、bootstrap/cache目录设置为可写(chmod -R 775 storage bootstrap/cache)。