К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

secure-code-guardian — скилл для Claude Code: аутентификация и защита

Скилл помогает реализовать аутентификацию, валидацию входа и защиту от уязвимостей OWASP Top 10. Пригодится, если пишешь бэкенд с собственной системой авторизации, а не готовым OAuth.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Jeffallan/claude-skills --skill secure-code-guardian -a claude-code
Открыть на GitHub

Что делает secure-code-guardian

Скилл содержит рабочие примеры для хеширования паролей bcrypt и argon2, параметризованных SQL-запросов, валидации с Zod, JWT-токенов и security-заголовков (CSP, HSTS, X-Frame-Options). В нём есть полный flow защищённого эндпоинта с rate limiting и проверка ошибок аутентификации — они не выдают, существует ли пользователь.

Скилл учит не доверять пользовательскому вводу, хранить секреты в переменных окружения и тестировать контрольные точки: перебор пароля, привилегии в БД, SQL-инъекции, XSS. Текст обрезан, но охватывает основное.

Какие задачи решает

  • хешировать пароли вместо сохранения в открытом виде
  • защитить SQL-запросы от инъекций параметризацией
  • валидировать и санировать пользовательский ввод
  • настроить rate limiting на эндпоинтах входа
  • установить security-заголовки и логировать попытки компрометации

Примеры запросов агенту

  • Реализуй аутентификацию с хешированием bcrypt и JWT-токенами
  • Покажи, как защитить эндпоинт от перебора пароля и SQL-инъекций
  • Настрой Helmet с CSP и CORS для защиты от XSS

Как установить secure-code-guardian

1Через Skills CLI (Vercel)

npx skills add Jeffallan/claude-skills --skill secure-code-guardian -a claude-code

2Вручную: положить файлы

~/.claude/skills/secure-code-guardian/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/secure-code-guardian/

Из того же набора61

Весь набор →
laravel-specialist https://github.com/Jeffallan Настраивает агента на разработку бэкенда на Laravel 10+ и PHP 8.2+. Помогает писать модели Eloquent, очереди Horizon, API resources и тесты Pest. Claude Code CX Codex Cursor +1 23 300установок golang-pro https://github.com/Jeffallan Скилл помогает писать идиоматичный Go: разбирать конкурентный код, строить микросервисы и проверять производительность. Пригодится для goroutines, gRPC и тестов. Claude Code CX Codex Cursor +1 18 900установок php-pro https://github.com/Jeffallan Задаёт правила разработки на PHP 8.3+ для Laravel и Symfony: включает strict_types, анализ в PHPStan на уровне 9 и тесты PHPUnit или Pest. Claude Code CX Codex Cursor +1 15 500установок flutter-expert https://github.com/Jeffallan Скилл для разработки кросс-платформных приложений на Flutter 3+ и Dart. Помогает с виджетами, управлением состоянием через Riverpod или Bloc, маршрутизацией GoRouter и оптимизацией производительности. Claude Code CX Codex Cursor +1 14 300установок typescript-pro https://github.com/Jeffallan Настраивает строгую типизацию TypeScript, генерирует брендированные типы и связывает tRPC. Пригодится при проектировании надёжных API и сложных generic-структур. Claude Code CX Codex Cursor +1 14 200установок kubernetes-specialist https://github.com/Jeffallan Скилл помогает создавать и проверять Kubernetes-манифесты, настраивать безопасность и разбирать сбои подов. Пригодится для деплоя и сопровождения кластерных workloads. Claude Code CX Codex Cursor +1 14 100установок devops-engineer https://github.com/Jeffallan Скилл создаёт Dockerfile, CI/CD-конфигурации и манифесты Kubernetes. Нужен для инфраструктуры, деплоя и разбора инцидентов. Claude Code CX Codex Cursor +1 11 200установок wordpress-pro https://github.com/Jeffallan Скилл помогает разрабатывать темы и плагины WordPress, блоки Gutenberg и магазины WooCommerce. Нужен для задач с REST API, хуками, безопасностью и производительностью. Claude Code CX Codex Cursor +1 9 700установок

Похожие

browser-extension-builder sickn33 Скилл помогает проектировать браузерные расширения на Manifest V3 для Chrome и Firefox. Пригодится при настройке архитектуры скриптов, фоновых воркеров и обмена сообщениями. Claude Code CX Codex Cursor +1 2 000установок freeze garrytan Хук блокирует Edit, Write и NotebookEdit за пределами выбранной папки. Отказ, а не предупреждение. Claude Code CX Codex Cursor +1 352установок draft-nda phuryn Скилл помогает составить детальное соглашение о неразглашении (NDA) между двумя сторонами с учётом типов информации, юрисдикции и пометками разделов для проверки юристом. Claude Code CX Codex Cursor +1 2 600установок binary-ninja-reverse zhaoxuya520 Помогает исследовать бинарные файлы в Binary Ninja через анализ представлений HLIL, MLIL и LLIL. Пригодится для проверки кросс-ссылок, поиска строк и безопасного патчинга. Claude Code CX Codex Cursor +1 587установок code-review agno-team Автоматическая проверка кода на стиль, ошибки и нарушения best practices. Скилл запускает линтер, ищет баги и уязвимости, даёт структурированный feedback с уровнями критичности. Claude Code CX Codex Cursor +1 472установок pr-workflow tursodatabase Задаёт правила подготовки коммитов и пулл-реквестов: требует атомарности, чистки секретов и обновления лицензий. Пригодится при командной разработке и запусках в CI. Claude Code CX Codex Cursor +1 1 200установок git-guardrails-claude-code Matt Pocock Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения. Claude Code 499 069установок ponytail-review DietrichGebert Скилл проверяет изменения глубже обычного diff: читает связанный код, ищет ошибки, риски, проблемы нагрузки и недостающие тесты. Пригодится для ревью PR и коммитов. Claude Code CX Codex Cursor +1 56 300установок

Вопросы о secure-code-guardian

Как установить secure-code-guardian в Claude Code?

Выполни npx skills add Jeffallan/claude-skills --skill secure-code-guardian -a claude-code, затем посмотри инструкции в файле ~/.claude/skills/secure-code-guardian/SKILL.md.

Что делает secure-code-guardian?

Предоставляет примеры безопасной реализации: хеширование паролей, параметризованные запросы, валидация входа Zod, JWT, security-заголовки и rate limiting. Включает checkpoints для тестирования каждого слоя защиты.

Когда использовать этот скилл вместо готовых OAuth-интеграций?

Когда нужна собственная система аутентификации с кастомной логикой авторизации. Если требуется готовое OAuth или SSO, лучше выбрать специализированный скилл.

Исходный текст

SKILL.md · MIT
---
name: secure-code-guardian
description: Use when implementing authentication/authorization, securing user input, or preventing OWASP Top 10 vulnerabilities — including custom security implementations such as hashing passwords with bcrypt/argon2, sanitizing SQL queries with parameterized statements, configuring CORS/CSP headers, validating input with Zod, and setting up JWT tokens. Invoke for authentication, authorization, input validation, encryption, OWASP Top 10 prevention, secure session management, and security hardening. For pre-built OAuth/SSO integrations or standalone security audits, consider a more specialized skill.
license: MIT
metadata:
  author: https://github.com/Jeffallan
  company: https://synergetic.solutions
  version: "1.1.0"
  domain: security
  triggers: security, authentication, authorization, encryption, OWASP, vulnerability, secure coding, password, JWT, OAuth
  role: specialist
  scope: implementation
  output-format: code
  related-skills: fullstack-guardian, security-reviewer, architecture-designer
---

# Secure Code Guardian

## Core Workflow

1. **Threat model** — Identify attack surface and threats
2. **Design** — Plan security controls
3. **Implement** — Write secure code with defense in depth; see code examples below
4. **Validate** — Test security controls with explicit checkpoints (see below)
5. **Document** — Record security decisions

### Validation Checkpoints

After each implementation step, verify:

- **Authentication**: Test brute-force protection (lockout/rate limit triggers), session fixation resistance, token expiration, and invalid-credential error messages (must not leak user existence).
- **Authorization**: Verify horizontal and vertical privilege escalation paths are blocked; test with tokens belonging to different roles/users.
- **Input handling**: Confirm SQL injection payloads (`' OR 1=1--`) are rejected; confirm XSS payloads (`<script>alert(1)</script>`) are escaped or rejected.
- **Headers/CORS**: Validate with a security scanner (e.g., `curl -I`, Mozilla Observatory) that security headers are present and CORS origin allowlist is correct.

## Reference Guide

Load detailed guidance based on context:

| Topic | Reference | Load When |
|-------|-----------|-----------|
| OWASP | `references/owasp-prevention.md` | OWASP Top 10 patterns |
| Authentication | `references/authentication.md` | Password hashing, JWT |
| Input Validation | `references/input-validation.md` | Zod, SQL injection |
| XSS/CSRF | `references/xss-csrf.md` | XSS prevention, CSRF |
| Headers | `references/security-headers.md` | Helmet, rate limiting |

## Constraints

### MUST DO
- Hash passwords with bcrypt/argon2 (never MD5/SHA-1/unsalted hashes)
- Use parameterized queries (never string-interpolated SQL)
- Validate and sanitize all user input before use
- Implement rate limiting on auth endpoints
- Set security headers (CSP, HSTS, X-Frame-Options)
- Log security events (failed auth, privilege escalation attempts)
- Store secrets in environment variables or secret managers (never in source code)

### MUST NOT DO
- Store passwords in plaintext or reversibly encrypted form
- Trust user input without validation
- Expose sensitive data in logs or error responses
- Use weak or deprecated algorithms (MD5, SHA-1, DES, ECB mode)
- Hardcode secrets or credentials in code

## Code Examples

### Password Hashing (bcrypt)

```typescript
import bcrypt from 'bcrypt';

const SALT_ROUNDS = 12; // minimum 10; 12 balances security and performance

export async function hashPassword(plaintext: string): Promise<string> {
  return bcrypt.hash(plaintext, SALT_ROUNDS);
}

export async function verifyPassword(plaintext: string, hash: string): Promise<boolean> {
  return bcrypt.compare(plaintext, hash);
}
```

### Parameterized SQL Query (Node.js / pg)

```typescript
// NEVER: `SELECT * FROM users WHERE email = '${email}'`
// ALWAYS: use positional parameters
import { Pool } from 'pg';
const pool = new Pool();

export async function getUserByEmail(email: string) {
  const { rows } = await pool.query(
    'SELECT id, email, role FROM users WHERE email = $1',
    [email]  // value passed separately — never interpolated
  );
  return rows[0] ?? null;
}
```

### Input Validation with Zod

```typescript
import { z } from 'zod';

const LoginSchema = z.object({
  email: z.string().email().max(254),
  password: z.string().min(8).max(128),
});

export function validateLoginInput(raw: unknown) {
  const result = LoginSchema.safeParse(raw);
  if (!result.success) {
    // Return generic error — never echo raw input back
    throw new Error('Invalid credentials format');
  }
  return result.data;
}
```

### JWT Validation

```typescript
import jwt from 'jsonwebtoken';

const JWT_SECRET = process.env.JWT_SECRET!; // never hardcode

export function verifyToken(token: string): jwt.JwtPayload {
  // Throws if expired, tampered, or wrong algorithm
  const payload = jwt.verify(token, JWT_SECRET, {
    algorithms: ['HS256'],   // explicitly allowlist algorithm
    issuer: 'your-app',
    audience: 'your-app',
  });
  if (typeof payload === 'string') throw new Error('Invalid token payload');
  return payload;
}
```

### Securing an Endpoint — Full Flow

```typescript
import express from 'express';
import rateLimit from 'express-rate-limit';
import helmet from 'helmet';

const app = express();
app.use(helmet()); // sets CSP, HSTS, X-Frame-Options, etc.
app.use(express.json({ limit: '10kb' })); // limit payload size

const authLimiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 10,                   // 10 attempts per window per IP
  standardHeaders: true,
  legacyHeaders: false,
});

app.post('/api/login', authLimiter, async (req, res) => {
  // 1. Validate input
  const { email, password } = validateLoginInput(req.body);

  // 2. Authenticate — parameterized query, constant-time compare
  const user = await getUserByEmail(email);
  if (!user || !(await verifyPassword(password, user.passwordHash))) {
    // Generic message — do not reveal whether email exists
    return res.status(401).json({ error: 'Invalid credentials' });
  }

  // 3. Authorize — issue scoped, short-lived token
  const token = jwt.sign(
    { sub: user.id, role: user.role },
    JWT_SECRET,
    { algorithm: 'HS256', expiresIn: '15m', issuer: 'your-app', audience: 'your-app' }
  );

  // 4. Secure response — token in httpOnly cookie, not body
  res.cookie('token', token, { httpOnly: true, secure: true, sameSite: 'strict' });
  return res.json({ message: 'Authenticated' });
});
```

## Output Templates

When implementing security features, provide:
1. Secure implementation code
2. Security considerations noted
3. Configuration requirements (env vars, headers)
4. Testing recommendations

## Knowledge Reference

OWASP Top 10, bcrypt/argon2, JWT, OAuth 2.0, OIDC, CSP, CORS, rate limiting, input validation, output encoding, encryption (AES, RSA), TLS, security headers

Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)

[Documentation](https://jeffallan.github.io/claude-skills/skills/security/secure-code-guardian/)

© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой