web-security
النجوم١
التفرعات٠
آخر تحديث٢٥ أبريل ٢٠٢٦ في ٢٢:٥٧
驗證、授權與 OWASP 安全檢查清單
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
SKILL.md
readonlyالقائمة
驗證、授權與 OWASP 安全檢查清單
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
完整的網站開發指南,涵蓋 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 代碼規範
| 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。