0

我正在使用一个简单的文件上传脚本。该脚本允许文件类型过滤,但我不确定我应该允许/禁止哪些文件。

我应该防止上传哪些文件类型?

4

4 回答 4

1

您应该只允许您需要的类型(白名单)。您永远不知道您的服务器、php 或人们可以创建的文件类型会发生什么变化,以及他们可以对服务器做什么。

似乎没有理由牺牲安全性来换取更少的类型检查。

于 2012-07-06T20:57:35.997 回答
1

找到这个(放入.htaccess):

php_flag engine off

'关闭' php,因此无法运行文件!然后你可以允许上传任何你想要的

(感谢 Pekka 的链接)

于 2012-07-06T20:59:01.630 回答
1

$_FILES 中提供的 mime 是从浏览器发送的,因此信任它是不安全的。还有其他函数可以确定文件的 mime,但请注意,它们中的大多数都依赖于文件扩展名。这是一种不好的确定方法,因为我可以轻松地将 .exe 重命名为 .png 并且函数会报告它是图像。我不确定您的需求,但您可以将脚本限制为仅允许图像文件并检查它们是否真的是带有 imagemagick 或 gd 库的图像。

没有文件对服务器是危险的。但是,如果存在允许运行用户文件的安全漏洞,则任何文件都可能是潜在威胁。

我建议不要拒绝某些文件类型,而是允许用户可能想要上传的几个文件类型。

于 2012-07-06T21:02:25.643 回答
0

不要列入黑名单。相反,请创建允许的文件类型的白名单。

于 2012-07-06T20:58:38.417 回答