OWASP Webshield Library

Practical, reusable OWASP Top 10 security controls for JavaScript applications: a framework-agnostic core library, adapters for React, Vue, Next.js and Express, and a framework-neutral server layer for Node.js.

About OWASP Webshield Library

What is OWL?

OWASP Webshield Library (OWL) is an open source security library for JavaScript applications. It packages common defenses (access control, input validation and sanitization, CSRF protection, SSRF blocking, encryption, secure session handling and redacted logging) as tested, reusable modules, each named after the OWASP Top 10 category it addresses.

Who is it for ?

JavaScript developers on React, Vue, Next.js, Express or plain Node.js who want security controls they don't have to write from scratch

Packages

All six packages are released together, with the same version number:

  • @owasp-webshield/core: every A01–A10 module, for any JavaScript app, with no runtime dependencies

  • @owasp-webshield/react: OwlProvider, AuthGate, PermissionGate, SanitizedText, useSecureHttpClient and hooks for every category

  • @owasp-webshield/vue: plugin and composables, v-safe-html (a sanitizing replacement for v-html) and a Vue Router guard

  • @owasp-webshield/next: withOwl() route-handler guard, middleware CSRF, next.config.js security headers, and sessions for Server

Components and Server Actions

  • @owasp-webshield/express: middleware for auth, permissions, CSRF, validation, security headers, SSRF checks and error handling

  • @owasp-webshield/node: the framework-neutral server functions the Express and Next.js adapters are built on

OWASP Top 10 coverage

  • A01 Broken Access Control: RBACManager, ACLManager, PermissionChecker. Server: requirePermission, withOwl({ permission })

  • A02 Cryptographic Failures: CryptoManager, PBKDF2Adapter, Argon2Adapter, SecretPolicy

  • A03 Injection: InputSanitizer, InputValidator. Server: validate, sanitizeBody, withOwl({ body, query })

  • A04 Insecure Design: ThreatModelGuard, DesignChecklist

  • A05 Security Misconfiguration: SecurityConfigManager, HardeningReporter. Server: securityHeaders, assertHardened, securityHeadersConfig

  • A06 Vulnerable & Outdated Components: DependencyRiskScanner, ComponentPolicy

  • A07 Identification & Authentication Failures: AuthManager, TokenManager. Server: requireAuth, withOwl({ auth }), createServerAuth

  • A08 Software & Data Integrity Failures: CSRFTokenManager, HTTPClient. Server: csrfProtection, guardCsrf, withOwl({ csrf })

  • A09 Security Logging & Monitoring Failures: SecurityLogger, EventEmitter. Server: errorHandler({ logger })

  • A10 Server-Side Request Forgery: SSRFGuard, SafeFetcher. Server: guardOutboundUrl, withOwl({ outboundUrl })

Project Resources

Incubator Project
Classification
Other
Language
JavaScript
License
Apache License 2.0
Contributors
6
GitHub Stars
6
Downloads
0

Project Leaders

Sreejith Sreekandan Nair

Project Lead

Project lead and creator of OWASP Webshield Library (OWL). Focused on turning OWASP guidance into practical, reusable security controls that JavaScript developers can adopt in minutes, from the browser to the server.

EmailGitHub

Requirements

  • Requires Node.js 20 or above (core, React and Vue)
  • Requires Node.js 20.19+ or 22.12+ (Node, Express and Next.js adapters)
  • Requires React 18 or above (React and Next.js adapters)
  • Requires Vue 3.3 or above (Vue adapter)
  • Requires Next.js 14 or above (Next.js adapter)
  • Requires Express 4.18 or above (Express adapter)
  • Core, React and Vue also run in modern browsers
OWASP Logo
OWASP is a nonprofit foundation improving software security through open-source projects, global communities, and education. All resources are free and open to everyone.
OWASP, the OWASP logo, and Global AppSec are registered trademarks and AppSec Days, AppSec California, AppSec Cali, SnowFROC, OWASP Boston Application Security Conference, and LASCON are trademarks of the OWASP Foundation, Inc.
© 2026, OWASP Foundation Inc. All rights reserved.