【发布时间】:2021-02-16 22:16:53
【问题描述】:
我使用 react 和 node.js/mongodb。我在前端有一个表单,用于通过 React 上传图像。目前我将图像名称存储在 mongo db 中并将图像上传到服务器(我的 node.js 项目中的 img 文件夹)。这是正确的方法还是应该将图像名称存储在数据库中并将图像上传到我的反应项目中的 img 文件夹而不是节点服务器?
【问题讨论】:
-
服务器上的图片没问题,不应该在你的 React 项目中。但通常我们有另一个静态文件服务器用于用户上传的图像和文件。两个常见的选项是 AWS s3 和谷歌云存储。让用户在执行代码的服务器(即本例中的节点服务器)上上传内容可能会让攻击者有机会上传一些看起来像图像但可以在您的服务器上运行并访问您的网站的代码的文件,不太可能,但可能发生,为什么要冒险。此外,与运行节点的服务器相比,S3 等静态服务器的成本要低得多。
-
谢谢,我不想为服务付费,这就是为什么我认为我必须上传到 node.js 服务器。好吧,node.js 项目已部署到 Heroku,所以这实际上是我将图像上传到的地方
-
AWS S3 免费使用一年,有一定的使用限制,但这对您来说已经绰绰有余了。