Гнездо. js - Санировать тело запроса - PullRequest
0 голосов
/ 03 апреля 2020

Я хотел бы спросить вас, предоставляет ли гнездо js некое тело запроса, чтобы избежать атак XSS.

Если это не так, есть ли "наилучшая практика" для достижения такого рода защиты?

Спасибо!

1 Ответ

1 голос
/ 03 апреля 2020

Да, вы можете использовать перехватчик для сериализации данных в и из вашего 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;
    }
}

, и вы можете применить этот канал, работающий в качестве декоратора на вашем контроллере:

@UsePipes(new SanitizePipe(CreateUserDTO))

Надеюсь, это помогает.

...