系统层面安全配置
sudo apt update && sudo apt upgrade(Ubuntu/Debian)或sudo yum update(CentOS/RHEL)更新系统;使用composer update更新Laravel框架及所有依赖包,及时修复已知安全漏洞。/etc/ssh/sshd_config中的PermitRootLogin yes为no并重启SSH服务);配置SSH密钥认证(禁用密码登录),防止暴力破解。ufw(Ubuntu)或firewalld(CentOS)开放必要端口(HTTP 80、HTTPS 443、SSH 22),限制外部对服务器的非必要访问。semanage fcontext命令为Laravel项目设置正确的上下文(如httpd_sys_rw_content_t),并使用restorecon恢复上下文,确保Web服务器能访问项目文件。Laravel应用安全配置
.env文件:设置APP_ENV=production(生产环境)和APP_DEBUG=false(关闭调试模式);为项目生成唯一APP_KEY(使用php artisan key:generate);将.env文件添加到版本控制忽略列表(如.gitignore),避免敏感信息泄露。@csrf指令);使用Eloquent ORM或查询构建器代替原始SQL查询,防止SQL注入;通过bcrypt哈希算法存储用户密码(如Hash::make($password))。certbot工具),并在App\Providers\AppServiceProvider的boot方法中添加URL::forceScheme('https'),强制所有流量通过HTTPS传输,加密数据传输。config/session.php中设置secure(仅通过HTTPS传输cookie)、httpOnly(禁止JavaScript访问cookie)、sameSite(限制跨站请求)等属性;使用Laravel内置的身份验证系统(php artisan make:auth),实现用户注册、登录、权限管理;限制登录尝试次数(如通过throttle中间件),防止暴力破解。文件与目录权限管理
www-data或apache,使用sudo chown -R www-data:www-data /path/to/laravel);设置目录权限为755(sudo find /path/to/laravel -type d -exec chmod 755 {} \;)、文件权限为644(sudo find /path/to/laravel -type f -exec chmod 644 {} \;)。storage和bootstrap/cache目录设置写权限(sudo chmod -R 775 /path/to/laravel/storage、sudo chmod -R 775 /path/to/laravel/bootstrap/cache),确保Laravel能正常写入缓存、日志等文件。Web服务器安全配置
PUT、DELETE);禁止访问隐藏文件(如.env、.git)和敏感文件(如composer.json、phpunit.xml);添加安全响应头(如X-Frame-Options "SAMEORIGIN"、X-XSS-Protection "1; mode=block"、X-Content-Type-Options "nosniff"),增强安全性。php.ini中的expose_php = Off(隐藏PHP版本信息)、disable_functions = exec,passthru,shell_exec(禁用危险函数);设置cgi.fix_pathinfo=0(防止路径遍历攻击)。持续维护与监控
enlightn/security-checker(composer require enlightn/security-checker)扫描项目依赖中的已知漏洞;使用Laravel自带的self-diagnosis包(composer require beyondcode/laravel-self-diagnosis --dev)检查配置问题。logrotate工具),保留最近14天的日志;使用fail2ban自动封禁频繁登录失败的IP地址;定期检查系统日志(如/var/log/syslog、/var/log/nginx/access.log),及时发现异常活动。mysqldump每天备份)和项目文件(如使用rsync或云存储),确保数据丢失时能快速恢复。