Nano Hash - криптовалюты, майнинг, программирование

Nest.js - очистить тело запроса

Я хотел бы спросить, предоставляет ли nestjs какой-то вид экранирования тела запроса для предотвращения XSS-атак.

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

Спасибо!

03.04.2020

Ответы:


1

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

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

03.04.2020
  • Как это может защитить строку от вредоносного содержимого? 03.04.2020
  • SanitizePipe предотвратит получение и сохранение информации, которая не является частью того, что вы ожидали от своего тела или запроса. В некотором смысле это часть предотвращения, но я думаю, что вы ищете Helmet в NestJs (docs.nestjs. com / technologies / security), это промежуточное ПО для защиты некоторых XSS, шлемов .github.io / docs / xss-filter. 07.04.2020

  • 2

    Вам нужно использовать class-sanitizer и применить sanitize (полезная нагрузка)

    27.07.2020
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..