允许用户上传任何内容

时间:2011-09-29 20:10:01

标签: php

我正在建立一个文件共享网站,我想,我希望我的用户能够上传和分享任何内容。

听起来很危险,我知道。但是,有没有一种方法可以实现这一目标?例如,当用户使用mime类型请求链接时强制下载?而不是在页面上“运行”某些东西。

如何在没有安全问题的情况下允许任何文件类型的任何想法。

由于

4 个答案:

答案 0 :(得分:4)

  1. 将文件存储在用户无法通过浏览器访问的位置。 (因此高于文档根目录)
  2. 加载文件时,请使用readfile()功能。
  3. 设置正确的标题,包括:

    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=[INSERT FILENAME HERE]");
    

    并为每种类型的文件使用正确的内容类型标题

答案 1 :(得分:2)

如果您只希望它对其他用户造成危险(因为他们将立即共享病毒浏览文件),但为您的Web服务器提供一些保护免受代码注入攻击,您可以考虑将上载存储在数据库中BLOB领域。这应该至少使得注入将在服务器上运行的代码变得更加困难。

答案 2 :(得分:1)

您可以使用简单的HTML multipart formPHP's $_FILES来允许用户上传任何内容。我看到的唯一问题是文件大小限制。

您可以简单地发布任何这些文件的链接。这是用户的浏览器设置,用于确定文件是执行还是下载,而不是您的。因此,您可以建议他们右键单击它们,然后选择“保存到”,但除此之外它是有限的。

答案 3 :(得分:-1)

  

如何在没有安全问题的情况下允许任何文件类型的任何想法。

你自己说。这就像想制作炒鸡蛋而不想打破鸡蛋。