gpt4 book ai didi

node.js - @nestjs/Swagger : Is it possible to prevent phishing?

转载 作者:行者123 更新时间:2023-12-04 17:17:52 24 4
gpt4 key购买 nike

我正在使用 @nestjs/swagger在 Nest.js 应用程序中生成 Swagger 文档。
在文档中,我们有一个简单的例子,比如

      const config = new DocumentBuilder()
.setTitle('Cats example')
.setDescription('The cats API description')
.setVersion('1.0')
.addTag('cats')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);
通过这个实现,我遇到了安全问题,这会使攻击者暴露在网络钓鱼中。例如,我们有一个 swagger 页面
https://petstore.swagger.io/
攻击者可以在 URL 中添加查询参数,例如
https://petstore.swagger.io/?url=https://27.rs/card.yaml#/default/get_
这可能会导致安全问题。有什么办法可以防止吗?我们可以禁用 Swagger URL 的查询参数,或者清理它吗?转换
https://petstore.swagger.io/?url=https://27.rs/card.yaml#/default/get _ => https://petstore.swagger.io/
作为第四个参数 SwaaggerModule.setup函数可以接收选项。我试图对他们做些什么,但仍然没有结果。以下是可能的参数
export interface SwaggerCustomOptions {
explorer?: boolean;
swaggerOptions?: Record<string, any>;
customCss?: string;
customCssUrl?: string;
customJs?: string;
customfavIcon?: string;
swaggerUrl?: string;
customSiteTitle?: string;
validatorUrl?: string;
url?: string;
urls?: Record<'url' | 'name', string>[];
}
我也可以在 GitHub 中看到 Unresolved 问题关于这个问题。
有提到 window.history.replaceState(null, "", window.location.pathname);的用法.如何在@nestjs/swagger 中使用它?

最佳答案

我在@nestjs/swagger 中没有找到任何解决方案,我可以在 GitHub 中看到 Unresolved 问题
https://github.com/swagger-api/swagger-ui/issues/4332#issuecomment-867574178
作为临时解决方案,我添加了以下部分代码来在呈现 Swagger 文档之前处理请求。

   app.use(swaggerPath, (req: Request, res: Response, next: NextFunction) => {
// A temporary solution to prevent security issues with query params
// Can be removed when into the swagger module will be added ability to turn off query parameters of URL
if (Object.keys(req.query).length) {
res.redirect(swaggerPath);
} else {
next();
}
});
其中 swaggerPath 类似于 /api/doc ,或者你的 Swagger 路径。

关于node.js - @nestjs/Swagger : Is it possible to prevent phishing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68115546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com