node.js - 在我的整个 express 应用上使用 Multer 中间件有什么缺点吗?
问题描述
在我的 Express 应用程序的早期,我将 Multer 中间件定义为这样使用:
const multer = require('multer');
app.post('*', multer({ storage: multer.memoryStorage() }).any());
我正在使用 multer 进行文件上传。
我对我的应用程序的大部分发布请求都不需要任何文件上传,因此中间件大部分时间都是无用的。
像这样使用它有什么缺点或危险,还是有什么原因我应该只应用中间件来发布需要上传文件的请求?
解决方案
我建议您不要将 multer 用作整个应用程序的中间件。使用 multer 作为中间件只会对您的应用程序构成安全威胁。
例如。你有两条路线:
一世。/register(需要上传图片作为头像)
ii. /login(不需要任何文件上传)
任何恶意用户都可以轻松使用 /login 将恶意文件上传到应用程序的目标文件夹中,并可能构成巨大威胁。
仅在要进行文件上传的路由中使用 multer 中间件有助于降低将不需要的和/或恶意文件上传到服务器的风险。
希望这可以帮助。
推荐阅读
- mysql - logstash:无法将 mysql 与 logstash 连接?
- php - 如何在 Symfony 4 中配置一个不存在的服务?
- python - matlab wprcoef - > python?
- c# - 没有资源的 Web API 端点
- vba - 如果条件为真,则在行中搜索单元格颜色并为给定范围着色
- angular - 使用表单外的按钮以 Angular 6 重置模板表单
- ios - 当前页面的 UIPageControl 点大小
- python - 使用 seaborn distplot 或类似的 seaborn 功能绘制分布(例如来自 bin 计数)
- android - 为什么 OkHttp 会默默地替换 ws:// 或 wss:// 方案?
- bash - 将一行python代码变成一个变量