温馨提示×

centos laravel安全设置有哪些

小樊
45
2025-11-29 17:17:59
栏目: 智能运维

CentOS 上 Laravel 安全设置清单

一 系统与网络加固

  • 保持系统与软件包为最新,及时修补漏洞;启用并配置 firewalld/iptables,仅开放必要端口(如 22/80/443),对管理口可限制来源 IP。
  • 部署 HTTPS/TLS(如 Let’s Encrypt),在 .env 设置 APP_URL=https://… 并在 Web 服务器或中间件中强制跳转。
  • 安装并启用 Fail2ban,对 SSH、MySQL、Laravel 登录 进行暴力破解防护:
    • SSH 建议:maxretry=3、findtime=10m、bantime=24h;日志路径 CentOS 为 /var/log/secure
    • Laravel 示例:创建过滤器规则匹配登录失败日志,jail 配置 maxretry=5、findtime=1h、bantime=12h,日志路径为 /var/www/your-app/storage/logs/laravel.log
  • 数据库安全:使用强口令、限制数据库账号仅本地访问、最小权限;在 MariaDB 上执行安全初始化(mysql_secure_installation)。

二 Web 服务器与 PHP 安全

  • Nginx 安全头与隐藏文件:
    • 添加 X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniff
    • 禁止访问敏感与隐藏文件:location ~ /.(?!well-known).* { deny all; }。
  • Apache 安全:启用 mod_rewrite、mod_headers,合理配置虚拟主机,使用 .htaccess 时设置 AllowOverride All
  • PHP 配置(php.ini):关闭错误显示 display_errors=Off、开启错误日志 log_errors=On,禁用危险函数(如 exec、system),设置合理 memory_limit、max_execution_time

三 Laravel 应用层安全配置

  • 关键配置(示例值与说明):
    • APP_KEY:确保为 32 位随机字符串(php artisan key:generate)。
    • APP_DEBUG=false(生产环境)。
    • 会话 Cookie:SESSION_SECURE_COOKIE=true、SESSION_HTTP_ONLY=true、SESSION_SAME_SITE=lax/strict
    • 密码哈希:BCRYPT_ROUNDS=12
  • 防护机制:
    • 启用并正确使用 CSRF(表单加 @csrf,AJAX 设置 X-CSRF-TOKEN 头)。
    • 严格 输入验证授权(Form Request、Gate/Policy),避免业务逻辑绕过。
    • 防注入:优先使用 Eloquent/查询构造器,避免原始 SQL。
    • 文件上传:限制类型/大小,存储于非 Web 可访问目录,必要时做病毒扫描与重命名。
    • 速率限制:登录/敏感接口使用 throttle 中间件(如 throttle:60,1)。
    • 安全头与 CSP:启用 Content-Security-Policy 等浏览器安全头,必要时集成 laravel-csp

四 文件权限与 SELinux

  • 目录归属与权限(以 Apache 运行用户 apache:apache 为例):
    • 确保可写目录归属正确并限制权限:
      • chown -R apache:apache storage bootstrap/cache
      • chmod -R 775 storage bootstrap/cache
  • 如启用 SELinux
    • 设置目录类型:chcon -R -t httpd_sys_content_t /path/to/laravel
    • 可写目录:chcon -R -t httpd_sys_rw_content_t storage bootstrap/cache
    • 数据库远程连接(如需要):setsebool httpd_can_network_connect_db 1
  • 生产环境建议运行 php artisan config:cache 提升性能(注意仅在生产环境缓存配置)。

五 依赖、日志与备份监控

  • 依赖管理:定期执行 composer auditcomposer outdated,移除无用依赖;可使用 Dependabot/Renovate 自动创建安全更新 PR。
  • 日志与监控:
    • 生产环境使用 daily 日志通道(LOG_CHANNEL=daily),确保登录失败、权限变更、敏感操作等关键事件被记录。
    • 结合 Fail2ban 与监控系统(如 Nagios/Zabbix)进行异常检测与告警。
  • 备份与恢复:定期备份代码、附件与数据库,验证可恢复性,保留多份异地副本。

0