Skip to content

A plugin for Elysia.js that provides XSS (Cross-Site Scripting) protection by sanitizing request body data.

Notifications You must be signed in to change notification settings

aashahin/elysia-xss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elysia XSS

A plugin for Elysia.js that provides XSS (Cross-Site Scripting) protection by sanitizing request body data.

Features

  • 🛡️ Automatic XSS protection for request body data
  • 🔄 Recursive sanitization of nested objects and arrays
  • 🎯 Configurable scope options
  • 🪶 Lightweight with minimal dependencies
  • 🚀 Built for Elysia.js and Bun

Installation

bun add elysia-xss

Usage

import { Elysia } from 'elysia'
import { elysiaXSS } from 'elysia-xss'

const app = new Elysia()
    .use(elysiaXSS({}))
    .get("/", () => "Hello World!")
    .listen(3000)

Configuration

The plugin accepts a configuration object with the following options:

{
    as?: "global" | "scoped" | "local" // Default: "global"
}

Example with Configuration

import { Elysia } from 'elysia'
import { elysiaXSS } from 'elysia-xss'

const app = new Elysia()
    .use(elysiaXSS({ as: "scoped" }))
    .post("/submit", ({ body }) => {
        // body is automatically sanitized
        return { message: "Data received", data: body }
    })
    .listen(3000)

How it Works

The plugin automatically sanitizes all string values in the request body, including nested objects and arrays. It uses the xss package under the hood for sanitization.

Dependencies

  • Elysia - The web framework
  • xss - XSS sanitizer

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

A plugin for Elysia.js that provides XSS (Cross-Site Scripting) protection by sanitizing request body data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published