繁体   English   中英

Nest.js - 清理请求正文

[英]Nest.js - Sanitize request body

我想问一下nestjs是否提供了某种请求的主体逃逸以防止XSS攻击。

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

谢谢!

是的,您可以使用拦截器序列化数据进出 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;
    }
}

您可以在 controller 上应用这个 pipe 作为装饰器运行:

@UsePipes(new SanitizePipe(CreateUserDTO))

希望能帮助到你。

您需要使用 class-sanitizer 并应用 sanitize(payload)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM