con un clic
security-deep-review
深度程式碼安全審查,檢測注入攻擊、XSS、CSRF、身份驗證和授權問題
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
深度程式碼安全審查,檢測注入攻擊、XSS、CSRF、身份驗證和授權問題
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
API 開發流程引導技能,協助開發者選擇合適的開發流程(API First 或 Code First),並提供 OpenAPI 規格管理、程式碼產生等自動化支援。
Cucumber/Gherkin BDD 最佳實踐指導技能,提供 Gherkin 撰寫規範、情境設計原則、Discovery Workshop 引導與常見反模式識別,協助團隊撰寫高品質的行為驅動開發規格。
BDD 測試實作技能,協助開發者使用 Reqnroll 撰寫行為驅動開發測試,包含 Gherkin 語法、測試步驟實作與 Docker 測試環境設定。
EF Core 操作與最佳化技能,協助開發者正確使用 Entity Framework Core,包含 DbContextFactory 模式、查詢最佳化、Migration 管理與反向工程。
錯誤處理與 Result Pattern 技能,協助開發者實作統一的錯誤處理機制,包含 Result Pattern 應用、Failure 物件建立與分層錯誤處理策略。
Handler 業務邏輯層實作技能,協助開發者實作符合專案規範的 Handler,包含業務邏輯處理、流程協調、Result Pattern 錯誤處理與跨 Repository 操作。
| name | security-deep-review |
| description | 深度程式碼安全審查,檢測注入攻擊、XSS、CSRF、身份驗證和授權問題 |
深度程式碼層級的安全審查,專注於程式設計上的漏洞。
使用 Read 工具讀取要審查的程式碼檔案。如果使用者提供目錄,使用 Glob 找出所有程式碼檔案。
針對每個檔案,檢查以下模式:
SQL Injection (TypeScript/JavaScript):
`SELECT * FROM users WHERE id = ${userId}`"SELECT * FROM users WHERE id = " + userIddb.query("SELECT * FROM users WHERE id = $1", [userId])SQL Injection (Go):
fmt.Sprintf("SELECT * FROM users WHERE id = %s", userID)db.Query("SELECT * FROM users WHERE id = $1", userID)Command Injection:
exec(\ping ${userInput}`)`eval(userCode)execFile("ping", ["-c", "4", validatedHost])React/Next.js:
<div dangerouslySetInnerHTML={{ __html: userInput }} />element.innerHTML = userInput<div>{userInput}</div> (React 自動轉義)Go (html/template):
html/template 而非 text/template密碼處理:
password: req.body.passwordcrypto.createHash("md5").update(password)bcrypt.hash(password, 12)JWT 安全:
jwt.sign({ userId }, "secret")jwt.sign({ userId }, secret)jwt.sign({ userId }, process.env.JWT_SECRET, { algorithm: "HS256", expiresIn: "1h" })檢查是否驗證資源所有權:
❌ 不安全:
app.delete("/api/posts/:id", async (req, res) => {
await db.posts.delete({ id: req.params.id });
});
✅ 安全:
app.delete("/api/posts/:id", async (req, res) => {
const post = await db.posts.findUnique({ where: { id: req.params.id } });
if (post.authorId !== req.user.id) {
return res.status(403).send("Forbidden");
}
await db.posts.delete({ id: req.params.id });
});
弱演算法:
crypto.createCipher("des", key) - DES 已廢棄crypto.createHash("md5") - MD5 不安全crypto.createCipheriv("aes-256-gcm", key, iv)不安全的亂數:
Math.random() - 不安全crypto.randomBytes(32)確認所有使用者輸入都經過驗證:
❌ 未驗證:
const age = req.body.age;
✅ 已驗證:
const schema = z.object({
age: z.number().int().min(0).max(150)
});
const validated = schema.parse(req.body);
對於每個發現的問題,提供:
🔒 程式碼安全審查報告
==========================================
[CRITICAL] SQL Injection
檔案: backend/api/users.go:78
程式碼:
76 | func GetUser(id string) (*User, error) {
> 78 | query := fmt.Sprintf("SELECT * FROM users WHERE id = %s", id)
79 | var user User
問題: 使用字串拼接建構 SQL 查詢,容易受到 SQL Injection 攻擊
風險: 攻擊者可以執行任意 SQL 指令
修復建議:
query := "SELECT * FROM users WHERE id = $1"
err := db.QueryRow(query, id).Scan(&user)
參考: https://owasp.org/www-community/attacks/SQL_Injection
依嚴重程度分類:
Critical (立即修復):
High (7 天內):
Medium (30 天內):
Low (下個版本):
target_path (選填): 要審查的檔案或目錄--language: 指定語言 (typescript, go, python, java)--focus: 專注類型 (injection, xss, csrf, auth)--severity: 最低嚴重程度 (critical, high, medium, low)產生詳細安全審查報告時,請參考:
../templates/security-report-template.md - 完整的安全檢查報告範本security-fast-scan - 完整安全掃描security-check-secrets - 敏感資料檢查security-check-config - 安全配置檢查