0

我曾开发过许多允许用户上传和显示图片(如个人资料图片、背景图片等)的网络应用程序。我遇到的一个问题是您通常提供用户可以使用的特定格式(即 jpg、png、jpeg、gif 等)。

问题是,假设您有个人资料图片,有些人可能会上传 jpeg、一些 png 和一些 gif。您应该以什么格式保存文件?即“ profile.jpeg ”、“ profile.png ”或简单的“ profile ”。

我注意到您可以简单地排除文件扩展名,然后浏览器打开图像,但这安全吗?

4

1 回答 1

0

文件扩展名不决定文件格式。您可以上传以 .png 结尾的 .gif,浏览器将毫无困难地显示它。(您也可以使用 .exe 或 .foo 或其他任何文件,图像仍会显示。)

换句话说,扩展与安全无关。

另一方面,我不知道将未知文件传递给浏览器以显示为图像的任何安全风险。如果您有<img src="virus.exe">,浏览器将什么也不做,因为该文件不是有效的图像文件。

如果您想确定,您可以在服务器上检查上传的文件是否为有效图像,如果不是则丢弃。

于 2013-01-12T08:22:01.593 回答