About rust-service-security
rust-service-security is a skill for developers securing Rust services that handle identity, sessions, credentials, or sensitive data. It provides checks for authentication flows, password handling, cookies, route protection, and security tests.
Key features
- 01Trace authentication flows end to end
- 02Protect secrets from logs and debug output
- 03Apply password storage and verification rules
- 04Set cookie and session safeguards
- 05Use middleware or extractors for route protection
- 06Test failure and session scenarios
Use cases
- 01Review a Rust login or password-reset flow
- 02Add authentication to privileged routes
- 03Audit cookie and session handling
- 04Test forged tokens and logout behavior
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ lvtd-llc/ skills --skill rust-service-securityAfter installing, type/rust-service-securityin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/auth-middleware.mdcookies-sessions.mdpassword-auth.mdDetails
From the project READMERust 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
- Identify the protected asset: account access, admin area, session state, password change, reset token, private data, or privileged operation.
- Trace the whole flow: request parsing, credential lookup, verification, session mutation, redirects/responses, logs, and tests.
- Keep secrets out of logs and debug output. Use secret wrappers for passwords, tokens, signing keys, and session secrets.
- Run password hashing and verification with memory-hard algorithms and move CPU-heavy work off async reactor threads.
- Prevent user enumeration. Failed login and password reset flows should not reveal whether the account exists.
- Set cookie and session attributes deliberately:
HttpOnly,Secure,SameSite, path, lifetime, signing/encryption, and store backend. - Protect routes at middleware or extractor boundaries, not by repeating ad-hoc checks in every handler.
- 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_blockingor 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-Cookieheaders.
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.