Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问clear审计通过

auth-patterns授权模式

Agent Skill

用于辅助安全审计、权限检查、凭据风险、认证流程和常见漏洞排查。它适合让 Agent 梳理敏感配置、检查依赖风险、分析鉴权逻辑或生成安全复核清单。使用时不能把工具输出直接当最终结论,涉及密钥、令牌、用户数据或生产系统时,应先确认最小权限、脱敏方式和操作边界。

总安装

643

周安装

26

GitHub Stars

10

下载量

202
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:auth-patterns(授权模式)
来源仓库:https://github.com/yanko-belov/code-craft
仓库路径:skills/auth-patterns
安装命令:
npx skills add https://github.com/yanko-belov/code-craft --skill auth-patterns
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/yanko-belov/code-craft --skill auth-patterns

简介

auth-patterns 提供不可妥协的身份验证最佳实践,强调密码哈希和会话安全底线。

  • 适用于任何涉及用户凭证、登录注册或令牌处理的系统开发任务。
  • 使用前必须检测项目中是否存在明文密码,发现立即替换为慢哈希算法。
  • 安装前需评估框架限制,如某些 CMS 可能强制使用 MD5 导致兼容问题。
  • 注意:本技能将不安全认证视为严重代码异味,必须优先修复。

SKILL.md

Authentication Patterns

Overview

Never store plain passwords. Use proven auth patterns. Security is not optional.

Authentication is the front door to your system. Get it wrong and everything else is compromised.

When to Use

  • Implementing login/registration
  • Storing user credentials
  • Verifying user identity
  • Working with sessions or tokens

The Iron Rule

NEVER store passwords in plain text. ALWAYS use slow hashing.

No exceptions:

  • Not for "internal users only"
  • Not for "we'll encrypt later"
  • Not for "it's behind a firewall"
  • Not for "just for development"

Detection: Insecure Auth Smell

If passwords aren't properly hashed, STOP:

// ❌ VIOLATION: Plain text password
await db.users.create({
  email,
  password: password  // Stored as-is!
});

// ❌ VIOLATION: Fast hash (crackable)
const hashed = crypto.createHash('sha256').update(password).digest('hex');

// ❌ VIOLATION: Reversible encryption
const encrypted = encrypt(password, key);  // Can be decrypted!

The Correct Pattern: Bcrypt/Argon2

// ✅ CORRECT: Slow, salted hashing with bcrypt
import bcrypt from 'bcrypt';

const SALT_ROUNDS = 12;  // Adjust based on your hardware

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

async function verifyPassword(plain: string, hashed: string): Promise<boolean> {
  return bcrypt.compare(plain, hashed);
}

// Registration
app.post('/register', async (req, res) => {
  const { email, password } = validated(req.body);

  const hashedPassword = await hashPassword(password);

  await db.users.create({
    email,
    password: hashedPassword  // Store the hash
  });

  res.status(201).json({ success: true });
});

// Login
app.post('/login', async (req, res) => {
  const { email, password } = validated(req.body);

  const user = await db.users.findByEmail(email);

  // Constant-time comparison to prevent timing attacks
  // Always verify even if user not found
  const dummyHash = '$2b$12$dummy.hash.here';
  const isValid = await verifyPassword(password, user?.password ?? dummyHash);

  if (!user || !isValid) {
    // Same error for both cases - prevents user enumeration
    return res.status(401).json({ error: 'Invalid credentials' });
  }

  const token = generateToken(user);
  res.json({ token });
});

Authentication Checklist

Password Storage

  • Use bcrypt or Argon2 (slow hash)
  • Salt rounds ≥ 12 for bcrypt
  • Never store plain text
  • Never use MD5/SHA1/SHA256 alone

Login Security

  • Constant-time comparison
  • Same error for "user not found" and "wrong password"
  • Rate limiting on login endpoint
  • Account lockout after N failures

Session/Token Security

  • JWTs: short expiry, secure secret
  • Sessions: secure, httpOnly cookies
  • Implement token refresh properly
  • Invalidate on logout/password change

Pressure Resistance Protocol

1. "We'll Encrypt Later"

Pressure: "Just store it for now, we'll add encryption"

Response: Plain text passwords get leaked. Breaches happen fast.

Action: Hash from day one. It's 3 lines of code.

2. "It's Behind a Firewall"

Pressure: "Internal network, no one can access it"

Response: Firewalls get breached. Insiders exist. Defense in depth.

Action: Hash regardless of network security.

3. "SHA256 Is Secure"

Pressure: "SHA256 is a strong hash"

Response: SHA256 is fast - billions per second on GPU. Bcrypt is intentionally slow.

Action: Use bcrypt or Argon2. Speed is the enemy.

4. "Just for Development"

Pressure: "Dev database doesn't need security"

Response: Dev code becomes prod code. Dev habits become prod habits.

Action: Use proper hashing in all environments.

Red Flags - STOP and Reconsider

  • password column without "hash" in name
  • Using crypto.createHash for passwords
  • Comparing passwords with ===
  • Same error messages reveal user existence
  • No rate limiting on auth endpoints

All of these mean: Fix the auth implementation.

Quick Reference

InsecureSecure
Plain text storagebcrypt/Argon2 hash
SHA256(password)bcrypt.hash(password, 12)
=== comparisonbcrypt.compare()
"User not found" error"Invalid credentials"
Unlimited login attemptsRate limiting + lockout

Common Rationalizations (All Invalid)

ExcuseReality
"We'll encrypt later"Do it now. Takes 3 lines.
"Behind firewall"Defense in depth required.
"SHA256 is secure"Too fast. Use slow hashes.
"Just development"Dev becomes prod.
"Internal users only"Insiders cause breaches too.
"We trust our database"Databases get dumped.

The Bottom Line

Hash passwords with bcrypt. Use constant-time comparison. Return generic errors.

Password security is non-negotiable. Use slow hashes (bcrypt, Argon2). Prevent timing attacks. Don't leak user existence. Rate limit everything.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

25.66%
按下载量换算52

Claude Code

24.26%
按下载量换算49

windsurf

17.59%
按下载量换算36

Antigravity

13.95%
按下载量换算28

trae

7.17%
按下载量换算14

OpenCode

3.68%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills