首先可以強化密碼,使用長度 12 碼以上的混合密碼,包含大小寫字母、數字與特殊符號,且定期更新密碼,並避免重複使用。
再者可以進行多方驗證,除了輸入密碼外,加入 OTP 或生物辨識。
然後要嚴格限制使用者存取資源的範圍,避免正式與測試帳號混用。
常見的有 HTTPS 與 TLS 加密,確保所有 Web 流量皆透過 TLS 1.2 以上版本傳輸,因為要避免明文傳輸。
自動導向 HTTP → HTTPS,而 HTTPS 就是在 HTTP 上加上 TLS/SSL 加密層,可以保護傳輸過程中的資料安全,避免密碼等資訊外洩。
而資料庫中的密碼必須使用強雜湊,像 bcrypt、Argon2,而非明碼程式碼或 MD5。
金鑰切記妥善保護,避免硬編碼在程式碼中。
常見的網路攻擊有SQL Injection、XSS、CSRF,這邊來解釋一下 XSS 是甚麼,簡單來說就是對使用者輸入進行輸出過濾的跨越式腳本攻擊,相對較好防禦。而 CSRF 則是惡意的偽造程式,容易獲取毫無防備的使用者資訊,通常加入 CSRF Token 驗證就能很好的解決了。
還有一種辦法是 Header 設定"Content-Security-Policy"能防止惡意腳本的注入。設定"Strict-Transport-Security"則可以強制使用 HTTPS。而設定"X-Frame-Options"能防止 Clickjacking,這幾個都非常入門且重要,可以記起來應用看看。
這邊比較需要注意的地方是伺服器強化的部分,定期更新 Web Server 補丁,然後關閉不必要的服務與 Port。
WAF 防火牆可以拿來過濾惡意流量,且配合 IDS/IPS 系統做異常流量偵測,可阻擋大部分常見的網路攻擊。
還有要進行日常監控,建立一個 ELK Stack 這種的中央化的日誌系統,對登入異常、流量異常發出警示。
可以多提醒使用者小心釣魚網站,避免隨意點擊連結。然後可以常駐設置 Session Timeout,進行安全登出與 Session 管理。切記在登出後會立即失效 Token 與 Cookie。
而對於瀏覽器端的保護,使用安全 Cookie (HttpOnly, Secure),還得避免將敏感資訊儲存在 LocalStorage。