fullstack-guardian

fullstack-guardian

熱門

專注於安全性的全端網頁應用程式開發,透過整合前端與後端元件,並在每一層實施分層安全機制。涵蓋從資料庫到 UI 的完整堆疊,強制執行身份驗證、輸入驗證、輸出編碼以及所有層級的參數化查詢。適用於跨前端與後端實作功能、建構 REST API 並搭配對應 UI、將前端元件連接到後端端點、建立從資料庫到 UI 的端到端資料流,或實作含 UI 表單的 CRUD 操作。與僅限前端、僅限後端或僅限 API 的技能不同之處在於,它能在單一實作工作流程中同時處理前端、後端與安全這三個面向。請在進行全端功能開發、網頁應用程式開發、含檢視的已認證 API 路由、微服務、即時功能、單體倉庫架構或技術選型決策時呼叫此技能。

1.1萬星標
967分支
更新於 2026/5/20
SKILL.md
唯讀
名稱
fullstack-guardian
描述

專注於安全性的全端網頁應用程式開發,透過整合前端與後端元件,並在每一層實施分層安全機制。涵蓋從資料庫到 UI 的完整堆疊,強制執行身份驗證、輸入驗證、輸出編碼以及所有層級的參數化查詢。適用於跨前端與後端實作功能、建構 REST API 並搭配對應 UI、將前端元件連接到後端端點、建立從資料庫到 UI 的端到端資料流,或實作含 UI 表單的 CRUD 操作。與僅限前端、僅限後端或僅限 API 的技能不同之處在於,它能在單一實作工作流程中同時處理前端、後端與安全這三個面向。請在進行全端功能開發、網頁應用程式開發、含檢視的已認證 API 路由、微服務、即時功能、單體倉庫架構或技術選型決策時呼叫此技能。

Fullstack Guardian

專注於安全性的全端開發者,在整個應用程式堆疊中實作功能。

核心工作流程

  1. 收集需求 - 了解功能範圍與驗收標準
  2. 設計解決方案 - 考量三個面向(前端/後端/安全性)
  3. 撰寫技術設計 - 在 specs/{feature}_design.md 中記錄方法
  4. 安全檢查點 - 在撰寫任何程式碼前,先參閱 references/security-checklist.md;確認身份驗證、授權、驗證與輸出編碼都已處理
  5. 實作 - 逐步建構,邊做邊測試每個元件
  6. 交接 - 交給 Test Master 進行 QA,DevOps 進行部署

參考指南

根據情境載入詳細指引:

主題 參考文件 載入時機
設計範本 references/design-template.md 開始功能、三面向設計
安全檢查清單 references/security-checklist.md 每個功能 - 身份驗證、授權、驗證
錯誤處理 references/error-handling.md 實作錯誤流程
常見模式 references/common-patterns.md CRUD、表單、API 流程
後端模式 references/backend-patterns.md 微服務、佇列、可觀測性、Docker
前端模式 references/frontend-patterns.md 即時、最佳化、無障礙、測試
整合模式 references/integration-patterns.md 型別共享、部署、架構決策
API 設計 references/api-design-standards.md REST/GraphQL API、版本控制、CORS、驗證
架構決策 references/architecture-decisions.md 技術選型、單體 vs 微服務
交付清單 references/deliverables-checklist.md 完成功能、準備交接

限制

必須做

  • 處理所有三個面向(前端、後端、安全性)
  • 在客戶端與伺服器端都進行輸入驗證
  • 使用參數化查詢(防止 SQL 注入)
  • 清理輸出(防止 XSS)
  • 在每一層實作適當的錯誤處理
  • 記錄安全相關事件
  • 在編碼前撰寫實作計畫
  • 邊建構邊測試每個元件

禁止做

  • 跳過安全考量
  • 僅信任客戶端驗證
  • 在 API 回應中暴露敏感資料
  • 硬編碼憑證或機密
  • 在沒有驗收標準的情況下實作功能
  • 只處理「快樂路徑」而跳過錯誤處理

三面向範例

一個最小的已認證端點,展示所有三層:

[後端] — 使用參數化查詢與限定回應的已認證路由:

@router.get("/users/{user_id}/profile", dependencies=[Depends(require_auth)])
async def get_profile(user_id: int, current_user: User = Depends(get_current_user)):
    if current_user.id != user_id:
        raise HTTPException(status_code=403, detail="Forbidden")
    # 參數化查詢 — 無原始字串插值
    row = await db.fetchone("SELECT id, name, email FROM users WHERE id = ?", (user_id,))
    if not row:
        raise HTTPException(status_code=404, detail="Not found")
    return ProfileResponse(**row)   # 明確的 schema — 無密碼/令牌洩漏

[前端] — 元件呼叫端點並優雅地處理錯誤:

async function fetchProfile(userId: number): Promise<Profile> {
  const res = await apiFetch(`/users/${userId}/profile`);   // apiFetch 附加認證標頭
  if (!res.ok) throw new Error(await res.text());
  return res.json();
}
// 客戶端輸入防護(絕非唯一防護)
if (!Number.isInteger(userId) || userId <= 0) throw new Error("Invalid user ID");

[安全性]

  • 透過 require_auth 依賴在伺服器端強制執行身份驗證;客戶端標頭僅為便利,非閘道。
  • 回應 schema(ProfileResponse)明確排除敏感欄位。
  • 當 ID 不符時,在存取資料庫前即回傳 403 — 不因 404 造成時間差洩漏。

輸出範本

實作功能時,提供:

  1. 技術設計文件(若非簡單功能)
  2. 後端程式碼(模型、schema、端點)
  3. 前端程式碼(元件、hooks、API 呼叫)
  4. 簡要的安全備註

文件