gpt4 book ai didi

asp.net-mvc - 哪里是保存用户上传的图像的最佳位置

转载 作者:行者123 更新时间:2023-12-03 07:16:43 25 4
gpt4 key购买 nike

我有一个显示画廊的网站。用户可以从网络上传自己的内容(通过输入 URL)或从计算机上传图片。

我将 URL 存储在数据库中,这对于第一个用例来说效果很好,但如果用户从计算机上传,我需要弄清楚在哪里存储实际图像。

这里有关于我应该将这些存储在哪里的建议或最佳实践吗?

我应该将它们保存在应用程序数据或内容文件夹中吗?因为它们是用户内容,所以根本不应该将它们存储在网站中吗?

最佳答案

您不应将用户上传的内容存储在您网站结构中已知 URL 可以直接访问的任何位置。这是一个安全风险,因为用户可以上传 .htm 文件和 .js 文件。即使具有正确扩展名的文件也可能包含恶意代码,这些代码可由经过身份验证的用户在您的网站上下文中执行,从而允许服务器端或客户端攻击。

例如参见 http://www.acunetix.com/websitesecurity/upload-forms-threat.htmWhat security issues appear when users can upload their own files?其中提到了在允许用户上传文件并在您的网站中提供文件供下载之前需要注意的一些问题。

  1. 不要将文件放在正常网站目录结构中

  2. 不要使用用户为您提供的原始文件名。您可以添加包含原始文件名的内容处置 header ,以便他们可以使用相同的文件名再次下载它,但服务器上的路径和文件名不应是用户可以影响的内容。

  3. 不要信任图像文件 - 调整它们的大小并仅提供调整大小的版本以供后续下载

  4. 不要信任 mime 类型或文件扩展名,打开文件并对其进行操作,以确保其内容如其所声称的那样。

  5. 限制上传大小和时间。

关于asp.net-mvc - 哪里是保存用户上传的图像的最佳位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535627/

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