保持系統與依賴更新
定期更新Debian系統和Laravel及其依賴組件,是修復已知安全漏洞的核心措施。使用sudo apt update && sudo apt upgrade命令更新系統軟件包;通過composer update更新Laravel框架及依賴包;集成Dependabot或Renovate等自動化工具,實時監控并自動升級依賴項,確保及時獲取安全補丁。
強化系統級安全配置
ufw(Uncomplicated Firewall)限制入站/出站流量,僅允許必要端口(如HTTP 80、HTTPS 443、SSH 22)開放。執行sudo ufw allow 22/tcp(允許SSH)、sudo ufw allow 80/tcp(允許HTTP)、sudo ufw allow 443/tcp(允許HTTPS),最后啟用防火墻sudo ufw enable。Port 2222),禁用root遠程登錄(PermitRootLogin no),強制使用SSH密鑰認證(在~/.ssh/authorized_keys中添加公鑰),降低SSH暴力破解風險。/etc/pam.d/common-password文件,添加minlen=12(最小長度12)、dcredit=-1(至少1個小寫字母)、ucredit=-1(至少1個大寫字母)等規則,強制用戶使用強密碼。優化Laravel應用安全設置
@csrf指令(如<form method="POST" action="/submit">@csrf</form>),驗證請求合法性,防止跨站請求偽造攻擊。required|string|max:255)嚴格校驗用戶輸入,避免SQL注入和XSS攻擊。例如,在控制器中使用$request->validate(['username' => 'required|string|max:255'])。DB::select('SELECT * FROM users WHERE id = '.$id)),優先使用Eloquent模型或查詢構建器(如User::find($id)),ORM會自動處理參數綁定,防止SQL注入。.env文件中設置APP_URL=https://yourdomain.com,創建ForceHttps中間件(php artisan make:middleware ForceHttps),在中間件中添加return redirect()->secure($request->getRequestUri()),強制所有HTTP請求重定向到HTTPS,確保數據傳輸加密。ContentSecurityPolicy),設置Content-Security-Policy響應頭(如default-src 'self'; script-src 'self' 'nonce-隨機值'),限制資源加載來源,有效防御XSS攻擊。在app/Http/Kernel.php中注冊中間件,應用到所有請求。加強文件與權限管理
storage和bootstrap/cache目錄需可寫(chmod -R 755 storage bootstrap/cache),項目根目錄權限設為755,文件權限設為644。避免將敏感文件(如.env)暴露在web根目錄外。.env文件的權限設為600(chmod 600 .env),防止未授權訪問;確保APP_KEY(應用密鑰)安全,若泄露需立即更換(php artisan key:generate)。部署安全工具與監控
enlightn/security-checker工具定期掃描項目依賴,識別安全漏洞。執行composer require --dev enlightn/security-checker安裝,運行php artisan security:check查看掃描結果。.env中設置APP_LOG_LEVEL=debug),使用Fail2ban監控系統日志,自動封禁頻繁失敗的登錄嘗試;結合Zabbix、Prometheus等工具實時監控系統性能與異?;顒?,及時響應安全事件。遵循安全開發最佳實踐
throttle中間件限制請求頻率(如Route::middleware(['throttle:60,1'])->group(function () { ... })),防止暴力破解和DDoS攻擊。config/session.php中配置安全的會話驅動(如database或redis),設置secure選項為true(僅通過HTTPS傳輸會話Cookie),http_only為true(防止JavaScript訪問Cookie),same_site為strict(防止跨站請求偽造)。laravel-permission用于權限管理),確保應用符合安全標準。