你的網站比你想的更容易被攻擊
「我們只是一家小公司,駭客不會對我們有興趣吧?」這是中小企業最常見的資安迷思。
事實恰好相反。根據資安報告,超過 43% 的網路攻擊目標是中小企業。原因很簡單:大企業有專業的資安團隊和完善的防護機制,而中小企業往往防禦薄弱,是「更容易得手的目標」。
被駭客入侵的後果不只是網站被改頁面。更嚴重的是客戶資料外洩、商業機密被竊、網站被植入惡意程式感染訪客,甚至可能面臨法律訴訟和個資法罰鍰。
最常見的網站攻擊手法
SQL Injection(SQL 注入攻擊)
這是最古老也最常見的攻擊方式。攻擊者在表單欄位或 URL 參數中輸入惡意的 SQL 語句,試圖操縱你的資料庫。
例如,一個設計不良的登入表單,攻擊者只要在帳號欄位輸入 ' OR 1=1 --,就可能繞過密碼驗證直接登入。
防護方式:
- 永遠使用參數化查詢(Prepared Statements),絕不直接拼接使用者輸入到 SQL 語句中
- 使用 ORM 框架(如 Laravel Eloquent),它們自帶參數化查詢
- 對資料庫使用者設定最小權限原則
XSS(跨站腳本攻擊)
攻擊者將惡意 JavaScript 程式碼注入你的網站。當其他訪客瀏覽含有惡意程式的頁面時,這些程式會在他們的瀏覽器中執行。
攻擊者可以透過 XSS 竊取使用者的 Cookie(進而劫持登入狀態)、重新導向使用者到釣魚網站、或修改網頁內容誘騙使用者輸入敏感資訊。
防護方式:
- 對所有使用者輸入進行 HTML 實體轉義(Escape)
- 設定嚴格的 Content Security Policy(CSP)標頭
- 使用
HttpOnly和Secure旗標保護 Cookie
CSRF(跨站請求偽造)
攻擊者誘騙已登入的使用者在不知情的情況下執行操作。例如,你登入了網銀後瀏覽了一個惡意網站,該網站可能在背後發送轉帳請求到你的網銀。
防護方式:
- 所有表單提交都要附帶 CSRF Token
- 驗證 HTTP Referer 標頭
- 重要操作要求二次確認(如修改密碼需輸入現有密碼)
暴力破解(Brute Force)
攻擊者使用自動化工具,快速嘗試大量的帳號密碼組合,試圖破解登入憑證。
防護方式:
- 設定登入嘗試次數限制(例如 5 次失敗後鎖定 15 分鐘)
- 實施 CAPTCHA 驗證(如 reCAPTCHA)
- 強制密碼複雜度要求
- 實施雙因素驗證(2FA)
DDoS(分散式阻斷服務攻擊)
大量的電腦同時向你的網站發送請求,讓伺服器不堪負荷而癱瘓。這類攻擊不是為了竊取資料,而是讓你的網站無法正常運作。
防護方式:
- 使用 CDN 服務(如 Cloudflare)吸收流量
- 設定 Rate Limiting(請求頻率限制)
- 與主機商確認是否提供 DDoS 防護
基礎安全措施清單
以下是每個企業網站都應該執行的基礎安全措施:
伺服器與基礎設施
- HTTPS 全站加密:確保所有頁面都使用 HTTPS(參考我們的 HTTPS 完全指南)
- 定期更新:作業系統、網頁伺服器、PHP/Node.js、所有框架和套件都要保持最新版本
- 防火牆:設定 WAF(Web Application Firewall)過濾惡意請求
- 最小權限原則:資料庫帳戶、檔案權限、API 金鑰都只給予最小必要的存取權限
程式碼層面
- 輸入驗證:所有來自使用者的輸入都必須在伺服器端驗證
- 輸出轉義:在 HTML、JavaScript、SQL 中使用使用者資料時,都要進行適當的轉義
- 安全標頭:設定
X-Frame-Options、X-Content-Type-Options、Strict-Transport-Security等安全標頭 - 錯誤處理:正式環境不顯示詳細的錯誤訊息和堆疊追蹤
帳號與存取管理
- 強密碼政策:至少 12 字元,包含大小寫字母、數字和特殊符號
- 雙因素驗證:管理後台強制啟用 2FA
- 定期審查權限:離職員工帳號要立即停用
- Session 管理:設定合理的 Session 過期時間,避免長時間保持登入狀態
資料保護
- 密碼雜湊:永遠不儲存明文密碼,使用 bcrypt 或 Argon2 進行雜湊
- 敏感資料加密:身分證號碼、信用卡號等敏感資料要在資料庫中加密儲存
- 定期備份:每日自動備份資料庫和檔案,備份檔案存放在不同主機
- 備份還原測試:定期測試備份是否能成功還原,沒測試過的備份等於沒備份
安全監控與事件回應
監控系統
- 日誌記錄:記錄所有登入嘗試、管理操作和異常存取
- 即時警報:異常流量、登入失敗次數過多、檔案被修改時發送通知
- 弱點掃描:定期使用自動化工具掃描已知漏洞
事件回應計畫
萬一真的被入侵了,你需要一個明確的處理流程:
- 隔離:立即斷開受感染系統的網路連接
- 評估:確認受影響的範圍和資料
- 清除:移除惡意程式,修補漏洞
- 還原:從備份中還原乾淨的資料
- 通知:如有個資外洩,依法通知主管機關和受影響的使用者
- 檢討:分析入侵途徑,加強防護避免再次發生
個資法合規
台灣的《個人資料保護法》要求企業對蒐集的個人資料負有安全維護義務。違反者最高可處 5,000 萬元罰鍰。
企業網站常蒐集的個人資料包括:姓名、Email、電話、地址、IP 位址。你需要:
- 明確告知使用者你蒐集了哪些資料、用途為何
- 提供使用者查詢、更正、刪除個資的管道
- 採取適當的安全措施保護這些資料
- 發生資料外洩時,依法在 72 小時內通報
結語
網站資安不是一次性的工作,而是持續的過程。建議中小企業至少每季做一次安全檢查,每年做一次完整的弱點評估。
投資在安全防護上的費用,遠低於被入侵後的損失——包括資料復原成本、業務中斷損失、法律費用和品牌聲譽的傷害。預防永遠比善後便宜。