0

我正在阅读有关能够上传和下载文件的网站的攻击。一些攻击是关于上传一个实际上是 html 文件的 jpg 文件,以及关于如果您希望用户被允许存储 html 并下载它们(或者可能在浏览器中查看它们而不使用另存为功能)的评论。

是否有某种类型的标志我可以用来说不执行?我希望用户查看其他人上传的图像或视频文件。如果我希望显示用户 html 但我不想强迫用户下载它们(内容处置附件)怎么办。

有没有办法我可以说嘿这里是一些用户数据。它可能是一个图像,所以我应该允许 img src 工作。它可能是一个 html,所以我希望用户看到它,但不允许它读/写 cookie/localstorage/调用 ajax 请求/等?

-edit- 想一想。我所有的用户数据都托管在其自己的静态文件无 cookie 子域中。这将摆脱我提到的许多问题,但还有什么需要处理的呢?此外,我相信我的 mime 响应完全取决于我的 Web 服务器的功能(nginx atm),这可以简单地查看文件扩展名。

-edit2- 我调整了我的 nginx 配置以添加application/unknownContent-Type。它似乎正是我想要的。我看到一个建议对未知文件使用八位字节流,但这会导致浏览器(至少是 firefox)尝试下载它,即使它可以在浏览器中查看它的 jpg。

4

1 回答 1

1

这完全取决于Content-Type您的 HTTP 响应。

浏览器处理由Content-Typein HTTP 响应返回的数据。

例如,假设用户在上传字段中上传了一个 HTML 文件,据说是为了上传照片,只要您的网络服务器提供Content-Typeas image/jpeg(或image/png等),浏览器就应该将其作为图像处理 - 在这种情况下是无效图像,因为该图像包含奇怪的 HTML 内容,而不是通常的二进制文件。

无论如何,如果您感到不安全,您可以在上传验证期间随时查看文件数据。

于 2012-07-09T01:14:07.180 回答