在浏览器中上传和显示.html文件

时间:2012-08-16 05:35:11

标签: php html apache

我正在和几个朋友一起开展一个小项目,并设置了一个非常简单的PHP上传脚本,只有某些用户才能访问。我不担心任何类型的服务器攻击,因为这很有趣,但我确实有一个问题。

我已经创建了一个子域名(static.foo.bar),其中上传的文件被移动到。这个子域已关闭mod_php,以防止恶意上传和执行php脚本。该脚本还会检查文件扩展名和mime内容类型,但我认为这些内容很容易被绕过/欺骗。

但是,用户可以轻松上传.html文件并将其重定向到其他位置。同样,他们可以上传图像文件,让它在浏览器中显示图像,而不是被要求下载图像。

我认为这是浏览器的行为,但我也注意到,当将文件上传到发送空间(或任何其他服务)时,即使文件是.html(和有效的html),它也会询问用户下载它而不是在网站上显示它。

我在CentOS上运行Apache。

我如何做到这一点?

1 个答案:

答案 0 :(得分:1)

ForceType可能就是你要找的东西。

# In your .htaccess file
<Location /uploads_directory>
    ForceType application/octet-stream
</Location>

您希望将所有文件的mime类型设置为application/octet-stream,以便浏览器下载它们而不是尝试显示内容。