To improve security and streamline development, I propose integrating a built-in content sanitization feature in the framework to automatically prevent Cross-Site Scripting (XSS) attacks. Currently, developers rely on third-party libraries like sanitize-html and need to implement custom sanitization logic manually. This process can be error-prone, repetitive, and introduces unnecessary boilerplate code.
Developers must install sanitize-html:
npm install sanitize-html The framework should offer a built-in content sanitization feature, activated via a simple configuration flag or decorator. This would automate input sanitization, reducing boilerplate and ensuring security by default.
A built-in SanitizePipe would look like this:
import { PipeTransform, Injectable } from '@nestjs/common'; import sanitizeHtml from 'sanitize-html'; @Injectable() export class SanitizePipe implements PipeTransform { transform(value) { if (Array.isArray(value)) { return value.map(item => this.sanitizeValue(item)); } else { return this.sanitizeValue(value); } } private sanitizeValue(value) { if (typeof value === 'string') { return sanitizeHtml(value); } if (typeof value === 'object' && value !== null) { Object.keys(value).forEach(key => { if (typeof value[key] === 'string') { value[key] = sanitizeHtml(value[key]); } }); return value; } return value; } } This feature could be applied globally, ensuring sanitization is enabled across the app:
@Module({ providers: [ { provide: APP_PIPE, useClass: SanitizePipe, }, ], }) export class AppModule {} Security by Default: Automatically sanitizes all user inputs, reducing the risk of XSS vulnerabilities.
Simplified Setup: Developers no longer need to manually install packages or create custom sanitization logic.
Reduced Boilerplate: With automatic sanitization, developers can focus on application logic rather than repetitive security tasks.
Integrating built-in content sanitization would significantly enhance security and streamline development, reducing boilerplate and minimizing the chances of overlooked vulnerabilities. This feature would make the framework more secure by default and improve the overall developer experience.
Please authenticate to join the conversation.
Completed
Bug & Fixes
High Priority
8 months ago

Piyush Patel
Get notified by email when there are changes.
Completed
Bug & Fixes
High Priority
8 months ago

Piyush Patel
Get notified by email when there are changes.