哪里是保存用户上传的图像的最佳位置

2023-12-14

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

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

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

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


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

参见示例http://www.acunetix.com/websitesecurity/upload-forms-threat.htm and 当用户上传自己的文件时会出现哪些安全问题?其中提到了在允许用户上传文件然后在您的站点中提供文件供下载之前需要注意的一些问题。

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哪里是保存用户上传的图像的最佳位置 的相关文章

随机推荐