我正在和几个朋友一起做一个小项目,并设置了一个非常简单的 PHP 上传脚本,只有某些用户可以访问。我不担心针对服务器的任何类型的攻击,因为这是为了好玩,但我确实有一个问题。
我已经创建了一个子域(static.foo.bar),上传的文件将移至该子域。该子域关闭了 mod_php,以防止恶意上传和执行 php 脚本。该脚本还检查文件扩展名和 mime 内容类型,但我认为这些很容易被绕过/欺骗。
但是,用户可以轻松上传 .html 文件并将其重定向到其他地方。同样,他们可以上传图像文件并让它在浏览器中显示图像,而不是被要求下载图像。
我认为这是浏览器的行为,但我也注意到,在将文件上传到 sendspace(或任何其他服务)时,即使文件是 .html(和有效的 html),它也会要求用户下载它而不是在网站上显示。
我在 CentOS 上运行 Apache。
我该如何做到这一点?