安全文件扩展名

时间:2011-01-03 01:52:48

标签: php execution

我正在开发一个在线文件管理器,作为在LAMP堆栈上运行的网站的一部分。对于上传的文件,我应该禁止哪些文件扩展名? “.php”很明显。

4 个答案:

答案 0 :(得分:6)

我会以另一种方式去做。仅允许发布的spec文件。否则,您没有考虑的文件类型可能会非常危险。考虑一下你的“禁止PHP”,你还考虑过“.php5”或“.phps”吗?花几分钟编译一下你允许的特定类型列表要好得多。这需要一些前端加载,但最终可能会让你头疼。

答案 1 :(得分:5)

我认为你最好离开configuring Apache,所以它甚至不会尝试从上传目录运行脚本。然后,如果有人上传.php文件并不重要 - 如果有人浏览该文件,服务器将像任何.gif或.jpg一样提供服务,而不是尝试在服务器上运行它 - 即,用户只需将.php文件下载到他们的计算机上。

(请注意,我不是Apache专家,因此我不确切地知道要禁用脚本执行的配置更改 - 但是应该很容易查看配置文件,看看已经有什么为您的主目录启用了 on ,并将其反转为您的上传目录。)

您可能还需要注意GIFAR exploit

答案 2 :(得分:0)

也不要忘记.html文件。

您不仅需要禁止用户执行他们上传的文件,还需要严格限制用户上传的HTML的服务。有人可以通过一些javascript破坏您的登录和身份验证。即使它没有在您的服务器上执行,如果它是从您的域提供的,也可能存在风险。

您永远不应该执行任何用户上传的文件,也不应该将其送回。

答案 3 :(得分:-2)

Apache还允许通过放置在Web树中的特殊文件来分散管理配置。这些文件通常称为.htaccess,但您可以在AccessFileName指令中使用任何名称。放置在.htaccess文件中的指令适用于放置文件的目录和所有子目录。 .htaccess文件遵循与主配置文件相同的语法。由于每次请求都会读取.htaccess文件,因此对这些文件所做的更改会立即生效。