如何正确清理 NestJS 输入?

编程入门 行业动态 更新时间:2024-10-03 23:34:44

<a href=https://www.elefans.com/category/jswz/34/1770985.html style=如何正确清理 NestJS 输入?"/>

如何正确清理 NestJS 输入?

我问这个是因为我似乎无法得到直接答案。

因此,NestJS 有一种非常优雅的方法来使用装饰器来处理验证。也就是说,您可以使用所需的属性定义 DTO 类,并使用类验证器装饰器对它们进行注释。例如,假设我们有一条接受联系表单输入的路线。

class ContactInfoDTO {
     @IsString()
     @IsNotEmpty()
     name: string
     
     @IsEmail()
     email: string
     
     @IsString()
     @IsNotEmpty
     subject: string

     @IsString()
     @IsNotEmpty()
     body: string

}

这对于验证非常有用。如果我输入无效的电子邮件,它会按预期拒绝它。但是,这是我的问题。输入清理怎么样?比如说,我在 body 参数中输入一些 JavaScript?比如说,我的身体看起来像这样:

body: “Hello <script>//some malicious code here</script>”

现在,这仍然被接受。尽管脚本标签没有转换为 HTML 实体,但这确实带来了一些安全风险。

所以,我的问题是 NestJS 是否有任何内置的清理机制?有这方面的适当文件吗?因为我真的找不到任何东西,尽管这种事情在网络开发的背景下非常重要。

在 NestJS 中进行输入清理的最佳实践是什么?

回答如下:

sanitize-html
Transform
一起使用,如下所示:

import { ApiProperty } from '@nestjs/swagger';
import { Transform } from 'class-transformer';
import { IsString } from 'class-validator';
import * as sanitizeHtml from 'sanitize-html';

export class DocumentDto {
  @ApiProperty()
  @IsString()
  @Transform((value: string) => sanitizeHtml(value))
  public content: string;
}

更多推荐

如何正确清理 NestJS 输入?

本文发布于:2024-05-31 06:22:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771363.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何正确   NestJS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!