Validating Authentication Implementations

VerifiedCaution

Validates authentication mechanisms for security weaknesses and compliance gaps. Examines password hashing, JWT, session management, OAuth, MFA against OWASP and NIST standards.

Sby Skills Guide Bot
SecurityAdvanced
7/22/2026
Claude CodeCodex
#authentication#jwt#owasp-asvs#security-audit#session-management

Recommended for

Automated summary

This skill audits the authentication mechanisms of web applications, APIs, and backend services to surface security weaknesses, compliance gaps, and implementation flaws, grounded in OWASP and NIST guidance.

Strengths

  • Broad coverage: password hashing, JWT, sessions, OAuth/OIDC flows, MFA, and account controls such as rate limiting, lockout, and password reset.
  • Rates each finding by severity with a CWE reference and produces an OWASP ASVS V2/V3 compliance matrix.
  • Delivers a remediation plan with concrete code changes for every finding.
  • Locates authentication entry points by grepping route definitions, controllers, and OAuth callback handlers.

Limitations

  • Static code review only: it performs no dynamic testing or live exploitation of vulnerabilities.
  • Components outside the codebase (third-party identity providers, infrastructure config, WAF) may not be covered.
  • Finding quality depends on familiarity with the authentication framework in use (Passport.js, Spring Security, NextAuth, etc.).
When to use it

Use it when reviewing the code of a login system, token flow, or OAuth journey ahead of a production release.

When not to use it

Do not use it for dynamic penetration testing, fuzzing, or offensive exploitation, which this skill does not perform.

Security analysis

Caution
Quality score86/100

This is a legitimate defensive security auditing skill. It instructs the agent to inspect authentication code, identify weaknesses, and produce remediation guidance. There are no destructive commands, exfiltration instructions, obfuscated payloads, or attempts to disable safety controls. However, it grants broad shell and file-editing capabilities for analysis, so it warrants caution rather than a fully safe rating.

Findings
  • •Allowed tools include Bash(security:*), Bash(scan:*), Bash(audit:*) and Write/Edit, which permit shell execution and file modification beyond pure read-only auditing; the skill does not explicitly state that target files must not be modified.
  • •Scanning authentication code and configuration may expose secrets or credentials in findings; the skill does not include guidance to redact sensitive values.
How this analysis is made

Examples

Full auth review
Validate authentication security across ./src/auth and ./src/api — inventory the login, session, and token endpoints, then report findings with severity, CWE IDs, and an OWASP ASVS V2/V3 pass/fail matrix.
JWT hardening check
Check our JWT implementation: confirm the signing algorithm is safe, that exp/iat/aud/iss are validated, that the `none` algorithm is rejected, and that tokens aren't stored in localStorage. Give me remediation diffs.
OAuth flow review
Review the OAuth callback handler for CSRF state parameter usage, redirect URI whitelisting, and PKCE on our public client, and flag anything missing.

name: validating-authentication-implementations description: Validate authentication mechanisms for security weaknesses and compliance. Use when reviewing login systems or auth flows. Trigger with 'validate authentication', 'check auth security', or 'review login'. version: 1.0.0 allowed-tools: Read, Write, Edit, Grep, Glob, Bash(security:), Bash(scan:), Bash(audit:*) license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:

  • security
  • authentication
  • compliance compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw

Validating Authentication Implementations

Overview

Validate authentication mechanisms across web applications, APIs, and backend services for security weaknesses, compliance gaps, and implementation flaws. This skill examines password hashing, JWT token handling, session management, OAuth flows, MFA implementation, and account security controls against OWASP and NIST standards.

Prerequisites

  • Access to the target codebase and configuration files in ${CLAUDE_SKILL_DIR}/
  • Familiarity with the authentication framework in use (Passport.js, Spring Security, Django Auth, NextAuth, etc.)
  • Standard shell utilities and Grep/Glob available for codebase scanning
  • Reference: ${CLAUDE_SKILL_DIR}/references/README.md for OWASP authentication cheat sheet, NIST password guidelines, and JWT RFC specifications

Instructions

  1. Identify all authentication entry points by scanning for login routes, token endpoints, session initialization, and OAuth callback handlers using Grep across route definitions and controller files.
  2. Examine password storage by locating hashing function calls -- verify use of bcrypt, scrypt, or Argon2id with appropriate cost factors. Flag any use of MD5, SHA-1, SHA-256 without key stretching, or plaintext storage as CWE-916 (Use of Password Hash With Insufficient Computational Effort).
  3. Validate JWT implementations: check signing algorithms (reject none, flag HS256 with weak secrets), verify exp, iat, aud, and iss claims are validated, confirm tokens are not stored in localStorage (XSS exposure), and check for proper refresh token rotation.
  4. Assess session management: verify session IDs are regenerated after authentication, sessions have appropriate timeouts (idle and absolute), cookies use HttpOnly, Secure, and SameSite=Strict or SameSite=Lax attributes, and session fixation protections are in place.
  5. Review OAuth/OIDC flows: confirm state parameter usage for CSRF protection, validate redirect URI whitelisting, check PKCE implementation for public clients, and verify token storage security.
  6. Evaluate MFA implementation: confirm MFA is available for privileged accounts, check TOTP secret storage encryption, verify backup code generation uses cryptographically secure randomness, and flag any MFA bypass paths.
  7. Check account security controls: verify rate limiting on login endpoints, account lockout policies after failed attempts, secure password reset flows (time-limited tokens, no user enumeration), and brute-force protections.
  8. Validate credential transmission: confirm all auth endpoints enforce HTTPS, passwords are never logged or included in URLs, and API keys use secure header transmission rather than query parameters.
  9. Classify each finding by severity and map to CWE identifiers and OWASP ASVS requirements.
  10. Produce a remediation plan with specific code changes for each finding.

Output

  • Authentication inventory: List of all auth mechanisms, endpoints, and flows in the codebase
  • Findings report: Each finding includes severity, CWE reference (e.g., CWE-287 Improper Authentication, CWE-384 Session Fixation, CWE-916 Weak Password Hash), affected file/line, and remediation steps
  • OWASP ASVS compliance matrix: Pass/fail status for ASVS V2 (Authentication) and V3 (Session Management) requirements
  • Token security analysis: JWT algorithm, claim validation status, storage mechanism, and expiration policy
  • Executive summary: Risk rating, total findings by severity, and top priority fixes

Error Handling

| Error | Cause | Solution | |-------|-------|----------| | No authentication code found | Incorrect scan scope or unconventional auth patterns | Broaden Grep patterns; check for third-party auth services (Auth0, Firebase Auth, Cognito) configured externally | | Cannot determine hashing algorithm | Hashing abstracted behind framework | Inspect framework configuration files (e.g., config/auth.php, settings.py) for algorithm settings | | JWT library version unknown | Dynamic dependency resolution | Check lock files (package-lock.json, poetry.lock) for pinned versions and cross-reference known vulnerabilities | | Session config not in codebase | Session management handled by infrastructure | Check reverse proxy configs (nginx, Apache), cloud session stores (Redis, DynamoDB), or PaaS settings | | Rate limiting not detectable | Rate limiting at infrastructure layer | Note as "unverifiable from codebase" and recommend confirming at the infrastructure level |

Examples

JWT Implementation Review

Scan ${CLAUDE_SKILL_DIR}/src/auth/ and ${CLAUDE_SKILL_DIR}/src/middleware/ for JWT signing and verification logic. Flag any use of jwt.sign() with algorithm: 'none' or HS256 paired with a secret shorter than 256 bits as CWE-327 (Use of Broken Crypto Algorithm), severity critical. Verify that jwt.verify() validates exp, aud, and iss claims.

Password Storage Audit

Grep for bcrypt, argon2, scrypt, hashSync, pbkdf2 across the codebase. If password hashing uses crypto.createHash('md5') or hashlib.sha256() without PBKDF2 wrapping, flag as CWE-916, severity critical. Verify salt generation uses crypto.randomBytes() or equivalent CSPRNG.

Session Cookie Hardening

Locate session configuration in ${CLAUDE_SKILL_DIR}/config/ or middleware setup files. Verify cookie attributes include httpOnly: true, secure: true, sameSite: 'strict', and maxAge under 24 hours. Flag missing httpOnly as CWE-1004 (Sensitive Cookie Without HttpOnly), severity high.

Resources

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/validating-authentication-implementations-mrwakcxt' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/validating-authentication-implementations-mrwakcxt/download' --output '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md.part' && mv '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md.part' '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Environment declared by the author: Designed for Claude Code, also compatible with Codex and OpenClaw

Tools declared by the author (check availability in your agent): Read, Write, Edit, Grep, Glob, Bash(security:*), Bash(scan:*), Bash(audit:*)

Original excerpt: Prerequisites
  • Access to the target codebase and configuration files in ${CLAUDE_SKILL_DIR}/
  • Familiarity with the authentication framework in use (Passport.js, Spring Security, Django Auth, NextAuth, etc.)
  • Standard shell utilities and Grep/Glob available for codebase scanning
  • Reference: ${CLAUDE_SKILL_DIR}/references/README.md for OWASP authentication cheat sheet, NIST password guidelines, and JWT RFC specifications

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md' && test -s '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/validating-authentication-implementations' && cp -R '.skill-downloads/validating-authentication-implementations-mrwakcxt' '.claude/skills/validating-authentication-implementations'

Codex
test -f '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md' && test -s '.skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/validating-authentication-implementations' && cp -R '.skill-downloads/validating-authentication-implementations-mrwakcxt' '.agents/skills/validating-authentication-implementations'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/validating-authentication-implementations-mrwakcxt'

openskills read 'validating-authentication-implementations-mrwakcxt'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/validating-authentication-implementations-mrwakcxt/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills