| name | checking-session-security |
| description | Analyze session management implementations to identify security vulnerabilities in web applications.
Use when you need to audit session handling, check for session fixation risks, review session timeout configurations, or validate session ID generation security.
Trigger with phrases like "check session security", "audit session management", "review session handling", or "session fixation vulnerability".
|
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash(code-scan:*), Bash(security-check:*) |
| version | 1.27.0 |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| license | MIT |
| tags | ["security","audit","checking-session"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Checking Session Security
Overview
Audit session management implementations in web applications to identify vulnerabilities including session fixation (CWE-384), insufficient session expiration (CWE-613), and cleartext transmission of session tokens (CWE-319).
Prerequisites
- Application source code accessible in
${CLAUDE_SKILL_DIR}/
- Session management code locations identified (auth modules, middleware, session stores)
- Framework and language identified (Express.js, Django, Spring Boot, Rails, ASP.NET, etc.)
- Session configuration files available (
session.config.*, settings.py, application.yml)
- Write permissions for reports in
${CLAUDE_SKILL_DIR}/security-reports/
Instructions
- Locate session management code by searching for patterns:
**/auth/**, **/session/**, **/middleware/**, and framework-specific files (settings.py, application.yml, web.config).
- Analyze session ID generation: verify use of a cryptographically secure random generator with at least 128 bits of entropy. Flag predictable patterns such as
Date.now(), Math.random(), sequential IDs, or timestamp-based tokens (CWE-330).
- Check session fixation protections: confirm the session ID is regenerated after authentication (
req.session.regenerate() in Express, request.session.cycle_key() in Django). Flag any login handler that sets authenticated = true without regenerating the session ID.
- Validate cookie security attributes: verify
HttpOnly (prevents XSS-based token theft), Secure (HTTPS-only transmission), SameSite=Lax|Strict (CSRF mitigation), and __Host-/__Secure- prefix usage. Flag any missing attribute.
- Review session expiration: check idle timeout (recommend 15-30 min for sensitive apps), absolute timeout (recommend 4-8 hours), and sliding window configuration. Flag sessions without any expiration.
- Audit session invalidation: verify logout handlers destroy server-side session state and clear client cookies. Confirm password reset and privilege escalation flows invalidate existing sessions.
- : flag in-memory stores in production (no persistence across restarts), unencrypted session data at rest, and missing integrity checks on session payloads (e.g., unsigned JWT session tokens).