跳到主要内容
知仓学习社ZHICANG

rust-service-security

Use when adding, changing, testing, or reviewing security-sensitive Rust web service behavior, especially login flows, password hashing, credential …

不碰外部(只输出文字)无严重或高危命中hashgraph-online/awesome-codex-plugins

它会碰到什么

扫了多少5 个文本文件,7 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Rust Service Security

Use this skill when a Rust service handles identity, credentials, sessions,

cookies, privileged routes, or sensitive user data. Prefer explicit threat

checks and tests over optimistic handler code.

Core Workflow

  1. Identify the protected asset: account access, admin area, session state,

password change, reset token, private data, or privileged operation.

  1. Trace the whole flow: request parsing, credential lookup, verification,

session mutation, redirects/responses, logs, and tests.

  1. Keep secrets out of logs and debug output. Use secret wrappers for passwords,

tokens, signing keys, and session secrets.

  1. Run password hashing and verification with memory-hard algorithms and move

CPU-heavy work off async reactor threads.

  1. Prevent user enumeration. Failed login and password reset flows should not

reveal whether the account exists.

  1. Set cookie and session attributes deliberately: HttpOnly, Secure,

SameSite, path, lifetime, signing/encryption, and store backend.

  1. Protect routes at middleware or extractor boundaries, not by repeating

ad-hoc checks in every handler.

  1. Add tests for happy path, failed auth, missing session, forged cookie or

token, and logout/session rotation behavior.

Password Rules

Read references/password-auth.md before implementing or changing password

storage or verification.

  • Store PHC strings produced by Argon2id or the project's chosen password

hasher; never store plaintext or reversible encrypted passwords.

  • Generate salts with a secure RNG.
  • Use constant, generic responses for invalid credentials.
  • Use tokio::task::spawn_blocking or a dedicated blocking abstraction for

expensive password operations.

  • Keep password hash parameters configurable enough to upgrade over time.

Cookie And Session Rules

Read references/cookies-sessions.md when setting, reading, deleting, signing,

or persisting cookies and sessions.

  • Never store raw credentials in cookies.
  • Prefer opaque session IDs backed by a server-side store for privileged apps.
  • Rotate or renew session state after login and privilege changes.
  • Delete sessions server-side on logout when using a server-side store.
  • Test security attributes on Set-Cookie headers.

Route Protection

Read references/auth-middleware.md when adding admin routes, extractors,

guards, or framework middleware.

Keep handlers typed:

pub async fn admin_dashboard(user: AuthenticatedUser) -> Result<HttpResponse, AppError> {
    // Handler can assume authentication succeeded.
    Ok(HttpResponse::Ok().finish())
}

Avoid optional user lookups in handlers that require authentication; make the

missing-user case impossible at the handler signature when the framework allows

it.

Reference Files

  • references/password-auth.md: Argon2, PHC strings, user enumeration, and

blocking password work.

  • references/cookies-sessions.md: cookie flags, signed messages, server-side

sessions, and logout.

  • references/auth-middleware.md: route guards, extractors, and typed session

access.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。