Nest.js - 清理请求正文

sbq*_*bqq 3 node.js express nestjs

我想问一下nestjs是否提供了某种请求体转义来防止XSS攻击。

如果没有,是否有任何“最佳实践”来实现这种保护?

谢谢!

小智 5

是的,您可以使用拦截器来序列化 api 中的数据进出。

https://docs.nestjs.com/techniques/serialization

您可以使用 Sanitize Pipe,只是根据您的参数类型来清理您的正文请求中附带的一些垃圾。

import {ArgumentMetadata, Injectable, PipeTransform} from '@nestjs/common';
import {plainToClass} from 'class-transformer';

@Injectable()
export class SanitizePipe implements PipeTransform {

    constructor(private readonly className: any) {}

    transform(value: any, metadata: ArgumentMetadata) {
        return plainToClass(this.className, value, {excludeExtraneousValues:true}) as object as any;
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在控制器上应用此管道作为装饰器运行:

@UsePipes(new SanitizePipe(CreateUserDTO))
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。

  • 这如何防止字符串包含恶意内容? (3认同)