web-security
스타1
포크0
업데이트2026년 4월 25일 22:57
驗證、授權與 OWASP 安全檢查清單
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SKILL.md
readonly메뉴
驗證、授權與 OWASP 安全檢查清單
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
完整的網站開發指南,涵蓋 UI/UX 設計、React/Vue/Next.js 前端框架、Laravel/Node.js 後端、Coding Style 與互動式選擇精靈
Web 動畫(Framer Motion、GSAP、View Transitions API、Lottie)。CSS 動畫見 ui/no-ai-feel.md
REST API 與 GraphQL 設計規範指南
認證授權(Auth.js、Clerk、JWT/Cookie 安全、RBAC/ABAC)。不含 OAuth provider 細節
Laravel、Node.js、Django、FastAPI 後端框架指南
JavaScript、TypeScript、PHP、Python、CSS 代碼規範
SOC 직업 분류 기준
| id | web_security |
| name | web_security |
| description | 驗證、授權與 OWASP 安全檢查清單 |
❌ 危險
$query = "SELECT * FROM users WHERE id = " . $_GET['id'];
✅ 安全
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);
❌ 危險
<div><?= $userInput ?></div>
✅ 安全
<div><?= htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8') ?></div>
<!-- 表單中加入 CSRF Token -->
<form method="POST">
<input type="hidden" name="_token" value="<?= csrf_token() ?>">
</form>
// 雜湊密碼
$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);
// 驗證密碼
if (password_verify($password, $hash)) {
// 正確
}
session_regenerate_id(true); // 登入後重新產生 ID
session_set_cookie_params([
'lifetime' => 0,
'path' => '/',
'secure' => true, // HTTPS only
'httponly' => true, // 禁止 JS 存取
'samesite' => 'Lax'
]);
// 伺服器端驗證(必須)
$rules = [
'email' => 'required|email|max:255',
'password' => 'required|min:8',
];
// 永遠不要信任前端驗證
# 安全標頭
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self'
核心原則:deny-by-default、最小權限、伺服端必驗(不信任 client)、所有秘鑰用 secret manager。