Я хотел бы спросить, предоставляет ли nestjs какой-то вид экранирования тела запроса для предотвращения XSS-атак.
Если нет, есть ли какие-нибудь «лучшие практики» для достижения такого рода защиты?
Спасибо!
Я хотел бы спросить, предоставляет ли 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;
}
}
и вы можете применить этот конвейер в качестве декоратора на вашем контроллере:
@UsePipes(new SanitizePipe(CreateUserDTO))
Надеюсь, это поможет.
Вам нужно использовать class-sanitizer и применить sanitize (полезная нагрузка)