內部做法

外包做的後台,員工離職後帳號還能登入嗎?我們的角色權限做法:每個系統先定 4–6 個角色、權限寫在程式不靠隱藏按鈕、離職 1 小時內停權、每季盤點一次

2026.11.02 · 18 次瀏覽
外包做的後台,員工離職後帳號還能登入嗎?我們的角色權限做法:每個系統先定 4–6 個角色、權限寫在程式不靠隱藏按鈕、離職 1 小時內停權、每季盤點一次
“

很多中小企業的後台只有「管理員」和「一般使用者」兩種帳號,業務看得到成本價、離職員工帳號半年後還能登入。這篇公開 ScriptWalker 的角色權限做法:權限矩陣怎麼訪談出來、Laravel 裡怎麼落地、怎麼測、離職停權與季度盤點流程,以及這套做法的代價與不適合的情境。 ”

分享:

直接答案:在我們做的系統裡不會。ScriptWalker 每個後台開工前先定 4–6 個角色與權限矩陣,權限寫在後端程式、不靠隱藏按鈕,離職 1 小時內停權,每季做一次權限盤點;這部分約占開發工時 5–10%。

問題場景:只有「管理員」一種權限,出事時查不到是誰

沒有角色設計的後台,風險不在駭客,而在內部。以一個 60 人經銷商的訂單後台為例(去識別化情境,數字依常見接手狀況整理):全公司 22 個帳號裡有 14 個是管理員,業務看得到進貨成本,3 位已離職員工的帳號還能登入,其中一位離職 5 個月後仍下載過客戶名單。OWASP Top 10 把「存取控制失效」列為第一名,原因就是這類問題太常見。

我們的做法:先訪談出權限矩陣,再寫進程式

一句話總結:角色由業務流程決定,權限由後端強制,紀錄由系統自動留存。流程如下:

需求訪談 → 權限矩陣表 → 客戶簽核 → Laravel Policy 實作 → 自動化測試 → 操作紀錄 → 離職停權 → 每季盤點

為什麼這樣做:隱藏按鈕不等於沒有權限

只把按鈕藏起來,懂一點技術的人直接打網址或 API 仍然能操作,所以權限一定要在後端檢查。我們做過的取捨有三個:

  • 角色不超過 6 個:角色太多,客戶自己就管不動,最後又全給管理員。
  • 權限以「動作」為單位:例如「看成本價」「刪訂單」「匯出名單」,而不是以頁面為單位,避免一頁裡混著敏感欄位。
  • 敏感動作一律留紀錄:匯出、刪除、改價格都記下誰、何時、改了什麼,出事時查得到。

具體執行:5 個步驟與實際設定

每個專案都照同一套步驟,工具固定,新人接手不用重學。

  • Step 1|訪談:用 Notion 表格列出所有功能與動作,逐一問「誰需要、誰不該看」。
  • Step 2|權限矩陣:整理成下表,由客戶窗口簽核後才開工。
  • Step 3|實作:用 Laravel 的 Gate 與 Policy 加上 spatie/laravel-permission 管理角色,敏感動作用 spatie/laravel-activitylog 留紀錄。
  • Step 4|測試:用 Pest 為每個角色寫「不該做到」的測試,在 GitHub Actions 每次推送都跑。
  • Step 5|停權與盤點:後台提供一鍵停用與強制登出;每季匯出帳號清單給客戶確認。
動作老闆業務主管業務會計倉管
看成本價✓✓—✓—
建立訂單✓✓✓——
刪除訂單✓✓———
匯出客戶名單✓————
確認出貨✓———✓

測試檔的命名規則長這樣:

tests/Feature/Permissions/
  SalesCannotSeeCostPriceTest.php
  SalesCannotDeleteOrderTest.php
  WarehouseCannotExportCustomersTest.php
  DisabledUserIsLoggedOutTest.php

這個做法的代價:前期多花時間,客戶要多做決定

  • 訪談與矩陣簽核約多 2–4 個工作天。
  • 每個角色的測試約多 5–10% 開發工時。
  • 客戶要指定權限負責人,離職與調職都要記得通知。
  • 權限越細,日後新增功能時越要記得補設定。

不適合什麼情境:一人公司與短期活動頁

  • 只有老闆一人使用的後台,2 個角色就夠,不需要完整矩陣。
  • 3 個月內就下架的活動網站,不值得做季度盤點。
  • 已導入企業單一登入(SSO)且由 IT 統一管權限的公司,應以既有身分系統為主。

客戶為什麼該關心:權限決定出事時的損失範圍

角色設計做好,一個帳號被盜或員工離職,影響範圍只限於那個角色能做的事。依個人資料保護法,企業對客戶個資負有安全維護義務,有存取控制與操作紀錄,發生事件時才說得清楚做了哪些防護。

如果你也想這樣做:給其他團隊的 4 個建議

  • 先寫「不該做到」的測試,比寫「做得到」更能抓到漏洞。
  • 權限矩陣放進交付文件,讓接手的人一看就懂。
  • 停權要包含強制登出與 API Token 失效,不只是改密碼。
  • 每季盤點用匯出清單,請客戶逐筆打勾,比口頭確認可靠。

我們在哪些客戶身上用過:經銷商後台改版

前面提到的 60 人經銷商,改版後管理員從 14 個降到 2 個,5 個角色上線,3 個離職帳號當天停用。第一次季度盤點又找出 2 個調職後權限沒收回的帳號。這套做法現在是 ScriptWalker(台灣 Laravel/Flutter 客製化開發工作室)所有後台專案的標準配備,客製化系統開發 NT$80,000 起。

常見問題 FAQ

我們公司才 15 個人,也需要角色權限嗎?

需要,但 3 個角色就夠。至少把能看成本、能刪資料、能改設定的人分開。

權限設計會讓開發費變多少?

通常多 5–10% 工時。比起事後補做或資料外洩的處理成本,前期做最便宜。

離職員工停權要我們自己操作嗎?

可以自己按停用,也可串人事系統自動停。我們建議指定 1 位負責人,離職當天處理。

舊系統沒有權限設計可以補嗎?

可以,但要先盤點現有帳號與功能。多數中型後台補做約 2–4 週。

行動呼籲:想檢查你的後台權限,或想加入我們

想知道現有後台有幾個管理員、離職帳號有沒有停用,可以找我們做權限健檢;如果你是重視這類細節的工程師,也歡迎來信聊聊:

分享: