跳到主要內容
網站資安 元伸科技 元伸科技 · · 11 分鐘閱讀

網站密碼安全實務:從加密儲存到多因素驗證的完整防護

深入解析密碼加密、雜湊演算法、多因素驗證與密碼政策設計,提供企業網站會員系統的密碼安全最佳實務與常見漏洞防範。

分享
元伸科技 24 年深耕、累積 3,000+ 客戶網站維運經驗,實務上看過最常見的密碼災難就是「明文存資料庫」這一條。本文從加密儲存、bcrypt 與 Argon2 的選擇、加鹽機制、多因素驗證、現代密碼政策設計,到常見攻擊手法與防禦,按照我們實際協助桃園、龜山在地企業導入會員系統的順序整理。重點不是把規則寫滿,而是幫老闆判斷「先做哪一個、可以晚一點做哪一個」。

密碼就像你家的門鎖——但很多企業連鎖都沒裝好

老實說,我們接過不少從別家轉過來的會員網站,第一件事打開資料庫一看,密碼欄位就是明文一條條躺在那邊。老闆通常一臉茫然:「以前的工程師說沒問題啊?」

實務觀察,這在桃園、龜山一帶的中小企業網站特別常見——當初為了趕時間上線,前手只用了現成的 PHP script,從來沒想過密碼怎麼存。這就像你花了大筆預算裝潢、進貨、打廣告,卻在門口裝了一把用迴紋針就能撬開的鎖。

根據資安研究統計,超過 80% 的資料外洩事件與密碼遭竊有關。對於擁有會員系統的企業網站來說,密碼安全不是「加分項目」,而是最基本的防線。一旦密碼外洩,損失的不只是資料,更是客戶的信任——而信任一旦失去,要花十倍的力氣才能挽回。

跟客戶聊這件事的時候,我們會直接這樣講:本文從最基礎的密碼儲存原理開始,逐步帶你看雜湊演算法加鹽機制多因素驗證密碼政策設計。看完之後至少能跟工程師對話,知道哪些是必須做的、哪些可以等。

密碼儲存的三種方式:從危險到安全

企業網站處理密碼的方式,大致可以分為三個層級。了解這三種方式的差異,是建立密碼安全的第一步:

儲存方式 安全等級 說明 風險
明文儲存 極危險 密碼原封不動存入資料庫 資料庫外洩 = 全部密碼曝光
簡單加密 不安全 用可逆的加密演算法儲存 金鑰外洩後所有密碼可還原
雜湊 + 加鹽 安全 不可逆的雜湊運算搭配隨機鹽值 即使資料外洩也無法還原密碼

明文儲存是最致命的錯誤。這意味著任何能接觸資料庫的人(包括內部員工、維護人員或駭客)都能直接看到每一個使用者的密碼。更可怕的是,許多使用者會在不同網站使用相同密碼——你的資料庫外洩,等於連帶洩露了使用者在其他平台的帳戶。老闆最常踩的坑就是:「我們又不是銀行,會員資料外洩有什麼關係?」結果某一天客戶在別的網站被盜,回頭找你算帳。

簡單加密看似安全,實際上只要取得加密金鑰,所有密碼都能被還原。這就像把保險箱的鑰匙藏在門口的花盆下面——看起來有保護,但不堪一擊。

雜湊加鹽才是目前業界公認的最佳實務。雜湊是一種單向運算,把密碼轉換成固定長度的亂碼,而且無法反推回原始密碼。加鹽則是在雜湊前加入一段隨機字串,讓同樣的密碼也會產生不同的雜湊值,有效防止彩虹表攻擊。

如果你正在規劃會員系統,我會建議在報價單上直接寫清楚「採用 bcrypt 或 Argon2 雜湊」這一條規格。更多關於會員系統的安全架構,可以參考網站資安防護指南

雜湊演算法怎麼選:不是每種都適合密碼

並非所有雜湊演算法都適合用來儲存密碼。選錯演算法,等於用紙箱當金庫——形式上有保護,實質上毫無作用。

演算法 適合密碼儲存 說明
MD5 不適合 運算速度太快,容易被暴力破解
SHA-1 / SHA-256 不適合 同樣速度太快,且 SHA-1 已有碰撞攻擊
bcrypt 推薦 專為密碼設計,可調整運算成本
Argon2 最佳 最新標準,同時抵抗 GPU 與記憶體攻擊

為什麼「速度快」反而不安全? 因為駭客在暴力破解時,速度越快就能在越短的時間內嘗試越多組合。MD5 每秒可以運算數十億次,等於駭客可以在幾秒內嘗試所有常見密碼。而 bcrypt 刻意設計成「慢速」的演算法——每次運算需要耗費更多時間和資源,讓暴力破解變得不切實際。

Argon2 是目前國際密碼雜湊競賽的冠軍演算法,除了運算速度可調整之外,還能指定記憶體用量,讓專用破解硬體也難以有效運作。實務上我們會這樣判斷:新建會員系統直上 Argon2,接手舊系統且密碼欄位已經是 bcrypt,那就讓它繼續用 bcrypt,不必為了演算法升級而強迫所有會員重設密碼——除非舊系統用的是 MD5、SHA-1,那就一定要在下次登入時透明地升級成新雜湊。

密碼雜湊演算法比較

多因素驗證:為你的帳戶加裝第二道鎖

即使密碼儲存做到滿分,使用者本身的密碼習慣仍然是最大的弱點。根據調查,超過 60% 的使用者會在多個網站重複使用相同密碼。這時候,**多因素驗證(MFA)**就是你最可靠的第二道防線。

多因素驗證的原理很簡單:除了「你知道的東西」(密碼)之外,再加上至少一個額外的驗證因素。這些因素通常分為三類:

  • 知識因素(Something you know):密碼、PIN 碼、安全問題
  • 持有因素(Something you have):手機簡訊驗證碼、驗證器 App、實體安全金鑰
  • 生物因素(Something you are):指紋、臉部辨識、虹膜掃描

對企業網站來說,最常見且實用的 MFA 方案包括:

  1. 簡訊驗證碼(SMS OTP):最普及但安全性較低,可能遭受 SIM 卡劫持攻擊
  2. TOTP 驗證器 App:如 Google Authenticator,安全性高且不依賴電信網路
  3. 電子郵件驗證碼:適合低風險操作,但不適合作為主要 MFA 方案
  4. WebAuthn / FIDO2 安全金鑰:最高安全等級,適合管理者帳戶

重點:即使只啟用最基本的 MFA,也能阻擋 99% 以上的自動化攻擊。 這是投資報酬率最高的安全措施之一。

實務觀察:B2C 會員系統通常 MFA 採選擇性開啟,避免影響轉換率;B2B 平台或後台管理員則一律強制 TOTP。除非你的會員系統只用來收電子報,否則我會建議至少把「管理員必須開 MFA」這條規則寫進系統需求。想進一步了解網站整體資安架構,推薦閱讀網站資安稽核檢查清單

密碼政策設計:平衡安全與使用體驗

很多企業在設計密碼政策時走向兩個極端——要嘛完全不設限(任何密碼都接受),要嘛過度嚴格(讓使用者寧可寫在便利貼上)。好的密碼政策應該在安全性使用者體驗之間找到平衡。

2026 年的密碼政策最佳實務

講白一點,這幾年密碼政策的觀念已經大幅轉彎。以前那套「90 天換一次、必須含大小寫加特殊符號」的規則,在 NIST 最新指南裡已經被打臉。原因很單純——使用者被逼到只能寫在便利貼上,反而更不安全。

根據 NIST(美國國家標準暨技術研究院)的最新建議,現代密碼政策應該:

  • 最低長度 8 字元,建議 12 字元以上
  • 不強制定期更換密碼(除非有洩漏跡象)——頻繁更換反而讓使用者選擇更弱的密碼
  • 不強制特殊字元組合規則——「要求大小寫 + 數字 + 符號」的舊規則已被證實弊大於利
  • 比對常見弱密碼清單,禁止使用 "password123"、"qwerty" 等已知弱密碼
  • 支援密碼管理器,允許貼上密碼,不限制密碼長度上限
  • 提供密碼強度即時回饋,幫助使用者選擇更好的密碼
舊觀念 新觀念 原因
每 90 天強制換密碼 不強制定期更換 頻繁更換導致使用者選擇弱密碼
必須含大小寫 + 數字 + 符號 鼓勵長密碼或通行短語 「正確的馬電池釘書機」比 "P@ssw0rd!" 更安全
禁止貼上密碼 允許貼上 支援密碼管理器的使用
安全問題作為驗證 改用 MFA 安全問題的答案容易被社交工程取得

密碼政策設計原則

常見的密碼攻擊手法與防範

了解駭客如何攻擊密碼,才能針對性地建立防禦。以下是企業網站最常遭遇的五種密碼攻擊:

1. 暴力破解攻擊(Brute Force)

駭客用程式自動嘗試所有可能的密碼組合。一個 6 位純數字密碼,只需要 100 萬次嘗試就能破解。

防範方式:登入失敗次數限制、帳戶鎖定機制、驗證碼(CAPTCHA)、慢速雜湊演算法。

2. 字典攻擊(Dictionary Attack)

使用預先準備的常見密碼清單逐一嘗試。這些清單包含數百萬個從歷次資料外洩中收集的密碼。

防範方式:禁止使用常見弱密碼、強制最低密碼長度、密碼強度檢查。

3. 撞庫攻擊(Credential Stuffing)

利用從其他網站外洩的帳號密碼,在你的網站上批量嘗試登入。由於許多使用者會重複使用密碼,這種攻擊的成功率極高。

防範方式多因素驗證是最有效的防線、異常登入偵測、IP 速率限制。

4. 彩虹表攻擊(Rainbow Table)

預先計算大量密碼的雜湊值建成查詢表,直接用雜湊值反查密碼。

防範方式加鹽(Salt)機制讓彩虹表完全失效——每個密碼的鹽值不同,預計算變得不可能。

5. 社交工程(Social Engineering)

不是攻擊技術,而是攻擊人。透過釣魚信件、假網站或電話詐騙,誘騙使用者主動交出密碼。

防範方式:員工資安教育訓練、釣魚信件模擬測試、MFA(即使密碼被騙走,沒有第二因素也無法登入)。

會員系統的密碼安全實務清單

對於擁有會員功能的企業網站,以下是一份完整的密碼安全檢查清單。無論你是正在建置新系統還是檢視現有系統,都可以逐項確認:

密碼儲存

  • 使用 bcrypt 或 Argon2 雜湊演算法
  • 每個密碼使用獨立的隨機鹽值
  • 絕不記錄或存取明文密碼
  • 資料庫存取權限最小化原則

密碼傳輸

  • 全站強制 HTTPS 加密傳輸
  • 登入表單使用 POST 方法,密碼不出現在 URL 中
  • 設定 HSTS 標頭防止降級攻擊

登入保護

  • 登入失敗次數限制(建議 5 次後鎖定 15 分鐘)
  • 驗證碼(CAPTCHA)防止自動化攻擊
  • 異常登入地點或裝置通知
  • 提供 MFA 選項(至少支援 TOTP)

密碼重設

  • 重設連結設定有效期限(建議 1 小時內)
  • 重設連結只能使用一次
  • 重設後自動登出所有已登入的 Session
  • 不在錯誤訊息中透露帳號是否存在

這份清單我們在跟客戶討論需求時,幾乎每一條都會逐項確認過。老實說,密碼重設那一段最容易被工程師偷懶——例如「重設後沒登出其他 Session」「錯誤訊息直接告訴駭客帳號是否存在」這兩個雷,我們接手案子時看過不下十次。如果你正在規劃新的會員系統,建議從一開始就把這些安全機制納入開發需求。元伸科技的客製化網站開發服務能根據你的業務需求,建立符合資安標準的會員系統架構。

密碼的未來:無密碼驗證趨勢

密碼的本質問題在於——它依賴人類的記憶力,而人類的記憶力是不可靠的。因此,業界正在積極推動**無密碼驗證(Passwordless Authentication)**的趨勢。

Passkey(通行金鑰) 是目前最受矚目的方案。它使用裝置內建的生物辨識(指紋或臉部辨識)取代傳統密碼,背後基於 FIDO2/WebAuthn 標準,私鑰儲存在使用者的裝置上,伺服器端不儲存任何可被竊取的秘密。

對企業網站來說,現階段的建議是:

  1. 立即實施:安全的密碼儲存 + MFA 是當務之急
  2. 中期規劃:評估導入 Passkey 作為替代登入方式
  3. 長期趨勢:逐步過渡到以 Passkey 為主的無密碼體驗

無論技術如何演進,密碼安全的核心原則不會改變——保護使用者的身分驗證資訊,是網站營運者最基本的責任。

結語:密碼安全是企業信譽的基石

密碼安全看似技術細節,實則關乎企業的核心信譽。一次密碼外洩事件造成的損失——客戶流失、品牌受損、法律責任——遠遠超過建置安全系統的成本。

我們會建議老闆先做三件事:(1) 打開資料庫看密碼欄位是不是亂碼;(2) 後台管理員至少先開 TOTP;(3) 密碼重設流程實際走一遍,確認不會洩漏帳號是否存在。光是這三件事,就能把一大半風險擋掉。

更多企業網站安全相關的實務建議,推薦閱讀網站 API 安全防護DNS 安全防護指南。想深入了解 客製化網頁設計 的完整服務範圍,歡迎前往元伸科技官網。

如果你不確定現有系統的密碼安全狀態,歡迎打給我們聊聊。

📞 03-366-1000 | 🌐 www.ozchamp.com | 免費諮詢 24hr 回覆

你的網站,AI 看得懂嗎?

免費檢測 25 項 AI-Ready 指標(robots.txt、Schema、llms.txt、SSR、E-E-A-T 等),10 秒知道你的網站對 ChatGPT、Perplexity、Google AI Overview 的友善程度。

相關文章

網站資安
中小企業網站資安入門:5 個最常見的攻擊手法與防禦策略
網站資安 網站資安 中小企業 駭客攻擊 元伸科技 · · 9 分鐘閱讀

中小企業網站資安入門:5 個最常見的攻擊手法與防禦策略

深入解析中小企業網站最常遭遇的 5 大資安攻擊手法,提供具體防禦策略與實用工具建議,幫助企業主建立基礎資安防線。

閱讀更多
網站資安
網站 API 安全防護:防止資料外洩的 7 道防線
網站資安 API安全 網站資安 API防護 元伸科技 · · 9 分鐘閱讀

網站 API 安全防護:防止資料外洩的 7 道防線

解析網站 API 面臨的安全威脅與 7 道防護措施,從身份驗證、速率限制、輸入驗證到日誌監控,幫助企業建立安全可靠的 API 服務架構。

閱讀更多
網站資安
網站備份自動化:零人力維護的資料保全策略
網站資安 網站備份 自動化備份 資料保全 元伸科技 · · 7 分鐘閱讀

網站備份自動化:零人力維護的資料保全策略

從備份排程設計、儲存策略到自動化工具選擇,完整解析網站備份自動化的建置方法,確保企業資料零遺失、快速復原。

閱讀更多