Skip to content

帳號與登入安全 ​

3.8.1 加了一組帳號安全功能,會員和管理員都有:

對象新功能
會員兩步驗證、資金操作二次驗證、登入裝置管理、安全日誌、通行密鑰登入
管理員通行密鑰登入、閒置自動鎖定、新的登入頁

3.8.2 又加了對接白名單 IP:登記了 IP 後,對接介面只接受從這些伺服器來的餘額下單;開了資金操作二次驗證的帳號,也要靠它才能透過對接介面下單。

升級須知 ​

升級到 3.8.1 後會有下面這些變化,都是正常的。升級方法見 升級與遷移。

  • 所有會員都要重新登入一次。 為了安全,會員的登入憑證全部重建,原本的登入狀態會失效。
  • 密碼改用更強的雜湊儲存。 會員和管理員的密碼在下次用密碼登入時自動轉換,不用你操作。管理員轉換的那一次,他在其他裝置上的後臺登入會失效,重新登入即可。
  • 後臺閒置自動鎖定預設開啟,時間是 15 分鐘,見下文「閒置自動鎖定」。升級本身不會讓管理員被登出。
  • 資料庫改動由線上升級自動完成,不用手動執行 SQL。

升級後不要再退回舊版本。 密碼已經轉換過的帳號,在舊版本裡無法用密碼登入。

會員端 ​

會員中心的安全導覽列(個人資料、密碼設定、信箱設定、手機設定那一排)多了這些頁面:

頁面用途
兩步驗證登入時除了密碼,還要輸入驗證器 App 上的動態碼;資金操作二次驗證的開關也在這裡
登入裝置查看哪些裝置登入著這個帳號,並將它們登出
對接白名單3.8.2 新增:登記能透過對接介面用餘額下單的伺服器 IP。只有預設主題有這一頁,其他主題放在「兩步驗證」頁裡
安全日誌登入、改密碼、提現等重要操作的紀錄
通行密鑰用指紋、臉部辨識或裝置 PIN 碼代替密碼登入

兩步驗證 ​

開啟步驟:

  1. 打開 兩步驗證 頁面,點「開啟兩步驗證」
  2. 用驗證器 App(Google Authenticator、Microsoft Authenticator 等)掃描 QR Code
  3. 輸入 App 上顯示的 6 位數動態碼和帳號密碼,確認開啟
  4. 頁面會顯示 8 組備用恢復碼,只會顯示這一次,請務必存好

開啟之後:

  • 登入時輸入密碼後,還要輸入 6 位數動態碼;手邊沒有動態碼時,可以用一組恢復碼代替
  • 其他裝置上的登入會被登出,只保留目前這臺
  • 資金操作二次驗證會自動開啟,見下一節

恢復碼每組只能用一次。手機遺失、打不開驗證器時,可以用它登入,或用它關閉兩步驗證。

操作需要輸入
關閉兩步驗證帳號密碼 + 動態碼或一組恢復碼。資金操作二次驗證會一併關閉
重新產生恢復碼帳號密碼 + 動態碼。舊的恢復碼全部作廢

金鑰和恢復碼只在設定時顯示一次,之後不會出現在任何頁面、清單或匯出資料裡,後臺也看不到。

資金操作二次驗證 ​

兩步驗證 頁面上的一個開關。開啟兩步驗證時會自動打開;切換這個開關需要輸入帳號密碼和動態碼。

打開後,會員進行下面這些操作前,要先輸入當下的 6 位數動態碼:

  • 用餘額支付下單
  • 申請提現(兌現)
  • 給下級會員轉帳
  • 用餘額開通商戶等級

驗證通過後,5 分鐘內不會再重複詢問。沒開兩步驗證的會員完全不受影響。

對接要注意: 店鋪共享和 API 對接用的都是對接介面,由伺服器自動呼叫,沒辦法輸入動態碼。所以開了資金操作二次驗證的帳號,透過對接介面用餘額下單時只認呼叫方伺服器的 IP:在這個帳號的對接白名單 IP裡才放行,白名單是空的就一律拒絕。下游網站用這種帳號對接你的店,或者你用自己在上游的帳號對接別人,都是這樣。

3.8.1 還沒有白名單,這種帳號完全不能透過對接介面消費餘額,只能在這個帳號上關掉資金操作二次驗證(兩步驗證可以繼續開著)。

對接白名單 IP ​

3.8.2 新增,所有會員都能用,和有沒有開兩步驗證無關。新增第一筆就啟用:之後對接介面用這個帳號的餘額下單時,只接受清單裡的 IP 或網段。只管下單,拉商品、查庫存、查訂單都不受影響。

清單開了資金操作二次驗證沒開資金操作二次驗證
有項目只接受清單裡的來源只接受清單裡的來源
空的一律拒絕(對接介面沒辦法輸入動態碼)不限制,和 3.8.2 之前一樣

沒開資金操作二次驗證的帳號也值得設定:商戶金鑰(app_key)萬一外洩,對方不從清單裡的 IP 發起,就用不了你的餘額下單。

在哪裡設定:

  • 預設主題(原初之力):會員中心安全導覽列裡的 對接白名單 頁,在「安全日誌」左邊。開了兩步驗證時,兩步驗證 頁的資金操作二次驗證開關下方也會給一行提示:開了資金操作二次驗證、清單還空著時是黃色提醒,附「去添加」連結;清單有項目時顯示放行了幾個來源,附「管理白名單」連結
  • 其他主題:白名單直接顯示在 兩步驗證 頁:開了兩步驗證時在資金操作二次驗證開關下方,沒開時在頁面底部
項目說明
能填什麼單一 IPv4 或 IPv6 位址,或是 CIDR 寫法的網段,例如 203.0.113.0/24
網段上限IPv4 最大 /16,IPv6 最大 /48。0.0.0.0/0 這類更大的網段無法加入
筆數和備註每個帳號最多 20 筆,每筆可以寫一段備註(最多 32 個字)
新增要驗證身分:開了兩步驗證的輸入驗證器 App 上的 6 位數動態碼,沒開的輸入帳號密碼
移除不用驗證,移除只會縮小放行範圍
最近放行每筆都會顯示它上一次放行對接下單的時間

預設主題的 對接白名單 頁頂端會顯示目前狀態:

狀態意思
已啟用清單有項目,對接介面只接受清單裡的來源
清單還是空的開了資金操作二次驗證、清單是空的,對接下單全部被拒
未啟用沒開資金操作二次驗證、清單是空的,不限制來源;新增第一個 IP 就會啟用

最近被拒絕的來源: 對接下單被拒時,回傳給呼叫方的錯誤訊息故意不帶 IP —— 下游網站可能把上游的錯誤訊息直接顯示給顧客,帶上 IP 就等於公開了下游伺服器的真實 IP。被拒的 IP 改為列在白名單下方的「最近被拒絕的來源」裡(最近 7 天,最多 5 個),點一下就能加入白名單,同樣要驗證身分。每次被拒也會在安全日誌裡記一筆「風險較高」的紀錄,同一個 IP 每 10 分鐘最多記一筆。這裡出現不認識的 IP,表示有人拿著這個帳號的商戶金鑰(app_key)在下單,應立即重設商戶金鑰。

不知道伺服器 IP: 先對接下一單。只要這一單被拒(開了資金操作二次驗證,或者清單裡已經有別的 IP),伺服器的 IP 就會出現在「最近被拒絕的來源」裡,直接加進白名單即可。否則就在呼叫介面的那臺伺服器上查出它對外連線用的公開 IP 並新增;有了第一個 IP 之後,其他來源的對接下單都會被拒,並列在「最近被拒絕的來源」裡。

站長注意: 系統依 網站設定 → 安全設定 裡的「IP 獲取方式」和「受信代理 IP」判斷呼叫方的 IP。網站套了 CDN 或反向代理、卻沒把它設為受信代理時,所有對接請求看起來都來自 CDN 的 IP,會員只能把 CDN 的 IP 加進白名單,白名單就形同虛設。請先把受信代理設定好。

登入裝置 ​

3.8.1 起,一個帳號可以同時在多臺裝置上保持登入。舊版本在新裝置登入時,會把上一臺裝置擠下線。

登入裝置 頁面列出所有登入中的裝置:裝置類型、系統和瀏覽器、登入時的 IP 和時間、最近活動的 IP 和時間。目前正在用的這臺會標上「當前設備」。

可以逐臺登出,也可以點「退出其他設備」或「退出全部設備」。發現陌生裝置,先將它登出,再修改密碼。

安全日誌 ​

帳號上的重要操作都會記錄下來,每筆都有時間、IP 和瀏覽器:

類別記錄的事件
登入登入成功(含通行密鑰登入)、登入失敗、登出
帳號資料修改密碼、信箱、手機號碼、個人資料或結算方式
驗證設定開啟或關閉兩步驗證、開啟或關閉資金操作二次驗證、通過資金操作二次驗證、重新產生恢復碼
裝置與金鑰登出裝置、新增或刪除通行密鑰、重設商戶金鑰(app_key)
資金申請提現、給下級會員轉帳
對接白名單新增或移除對接白名單 IP、對接下單被拒(呼叫方 IP 不在白名單裡)

風險較高的事件會帶上「風險較高」標記,例如登入 IP 和上次不同、登入失敗、關閉兩步驗證、重設商戶金鑰、新增對接白名單 IP、對接下單被拒。點「只看風險」可以只看這些。

日誌不會儲存信箱、手機號碼、收款帳號這類內容。

管理員查看: 後臺 會員管理,每位會員那一列都有「安全日誌」按鈕(盾牌圖示),點開就是這位會員的日誌,可以依類型、詳情、IP、時間篩選。管理員在後臺重設會員密碼,也會記錄進去。3.8.2 起這個按鈕只有主管理員帳號(安裝時建立的那個)能開啟,超級管理員、白班、夜班帳號點開會提示沒有權限。

通行密鑰 ​

用指紋、臉部辨識或裝置的螢幕鎖定密碼(PIN 碼)代替密碼登入。通行密鑰存放在會員自己的裝置或密碼管理工具裡,釣魚網站騙不走。

新增: 打開 通行密鑰 頁面 → 點「新增通行密鑰」→ 輸入帳號密碼 → 依裝置提示完成驗證。每個帳號最多 10 個,可以重新命名、刪除。

登入: 在登入頁點「使用通行密鑰登入」,或點一下帳號輸入框、從自動填入選單選擇通行密鑰,再用指紋、臉部辨識或 PIN 碼確認。

開了兩步驗證的會員,用通行密鑰登入時,只要在裝置上完成了指紋、臉部辨識或 PIN 碼驗證,就不用再輸入動態碼。沒做這一步的(例如沒設 PIN 碼的實體安全金鑰),仍要輸入動態碼。

通行密鑰對連線方式有要求:

要求說明
HTTPS + 域名網站要用 https://域名 開啟,用 http 或 IP 連線都不行
系統瀏覽器微信、QQ、支付寶等 App 內建的瀏覽器不支援
同一個域名通行密鑰只在新增時的那個域名下有效。帶 www 和不帶 www 算兩個域名,每個分站域名也各自分開

前兩項不符合時,登入頁不會出現「使用通行密鑰登入」按鈕。

其他主題 ​

預設主題(原初之力)已經具備這些頁面。洛杉磯、富士山、紐約、西雅圖、澀谷、魯迪烏斯等有會員中心的主題,要透過各自的主題更新取得這些頁面 —— 到應用商店把主題更新到最新版。這些主題沒有單獨的「對接白名單」頁,白名單直接顯示在「兩步驗證」頁:開了兩步驗證時在資金操作二次驗證開關下方,沒開時在頁面底部。

不論使用哪個主題,開了兩步驗證的會員都能正常登入。

後臺 ​

通行密鑰登入 ​

管理員可以用通行密鑰登入後臺,不用輸入密碼。

  1. 點右上角頭像,進入 個人設定
  2. 在「通行密鑰」一欄點「新增通行密鑰」
  3. 輸入目前的登入密碼
  4. 依提示用指紋、臉部辨識、Windows Hello、手機或安全金鑰確認

之後在後臺登入頁點「使用通行密鑰登入」即可。密碼登入照常可用;通行密鑰也能用來解除閒置鎖定。同樣需要 HTTPS,而且只在新增時使用的那個域名下有效。

開了谷歌驗證器的管理員:

通行密鑰登入時
在裝置上做了指紋、臉部辨識或 PIN 碼驗證直接登入,不用輸入谷歌驗證碼
沒做這一步(例如沒設 PIN 碼的一般安全金鑰)仍要輸入谷歌驗證碼

修改管理員密碼不會讓他的通行密鑰失效。 要收回某位管理員的後臺權限,請停用或刪除這個管理員帳號。

閒置自動鎖定 ​

升級後預設開啟,時間是 15 分鐘。在 網站設定 → 安全設定 的「後台閒置自動鎖定」裡修改,可填 0–1440 分鐘,填 0 關閉。見 網站設定。

  • 超過設定的時間沒有滑鼠、鍵盤或觸控操作,後臺會自動鎖定
  • 解鎖:輸入登入密碼,或使用通行密鑰;也可以點「改用其他帳號登入」
  • 鎖定由伺服器判斷。頁面自己定時重新整理資料不算操作;勾選「保持登入」的裝置一樣會鎖定
  • 鎖定時會離開目前的頁面,正在編輯的內容記得先儲存
  • 升級本身不會讓管理員被登出

新的登入頁 ​

後臺登入頁改成了 macOS 鎖定畫面的樣子:一個時鐘,加上玻璃質感的輸入框。

  • 右上角可以切換語言和外觀(亮色 / 暗色 / 跟隨系統)
  • 出錯時,提示直接顯示在對應的輸入框下方;開著大寫鎖定會提醒
  • 開了谷歌驗證器的帳號,驗證碼輸入框會直接在登入框裡展開
  • 沒設自訂背景(或用的就是預設那張)時,顯示內建桌布,隨亮色 / 暗色切換;自訂背景照常生效

預設背景圖本身換了新圖。 還在用預設「PC背景圖片」的網站,前臺和會員中心的背景也會跟著改變。想保留舊圖:升級前先把網站上的 /assets/admin/images/login/bg.jpg 另存一份,升級後到 網站設定 → 基本設定 把它當作「PC背景圖片」上傳。

常見問題 ​

現象怎麼辦
登入頁沒有「使用通行密鑰登入」按鈕用 https://域名 開啟網站,並改用系統瀏覽器,不要用微信、QQ、支付寶裡的內建瀏覽器
會員手機遺失,看不到動態碼用一組恢復碼登入,然後關閉兩步驗證,在新手機上重新開啟
後臺太常自動鎖定到 網站設定 → 安全設定 把「後台閒置自動鎖定」調長,或填 0 關閉
對接下單失敗,提示「该账号已开启资金二次验证,必须先登记对接白名单 IP 才能通过对接接口用余额下单。请登录该账号的会员中心,在「对接白名单」(或「两步验证」页)把服务器 IP 加入白名单;被拒的 IP 会列在那里」上游是 3.8.2 以上,這個帳號開了資金操作二次驗證,白名單還是空的。登入這個帳號的會員中心,開啟 對接白名單 頁(其他主題在 兩步驗證 頁),把「最近被拒絕的來源」裡的伺服器 IP 加進對接白名單 IP
對接下單失敗,提示「调用方 IP 不在该账号的对接白名单内。请登录该账号的会员中心,在「对接白名单」(或「两步验证」页)把服务器 IP 加入白名单;被拒的 IP 会列在那里」上游是 3.8.2 以上,這個帳號設了白名單,呼叫方伺服器的 IP 不在裡面。同樣從「最近被拒絕的來源」把它加進去;這個 IP 你不認識的話,商戶金鑰可能已經外洩,請先重設商戶金鑰
對接下單失敗,提示「该账号已开启资金二次验证,无法通过对接接口消费余额」上游是 3.8.1,還沒有白名單。在這個帳號的 兩步驗證 頁面關掉資金操作二次驗證,或者請上游升級到 3.8.2 後改用白名單
後臺點會員的「安全日誌」提示沒有權限3.8.2 起只有主管理員帳號(安裝時建立的那個)能看會員的安全日誌
升級後所有會員都被登出了正常現象,每位會員重新登入一次即可
換了域名,通行密鑰不能用通行密鑰綁定新增時的域名,在新域名下重新新增一個

基於 MIT 協議開源