MVC 防止图像文件的 URL 操纵攻击



我正在开发一个MVC网站,不同的用户可以上传几张图片。他们的想法是用户只能看到自己的图像。在IIS中使用虚拟文件夹来存储用户图像将是一个简单的解决方案,但是任何知道有效文件名的人都可以自由下载其他人的图片。

任何人都可以在不手动设置文件级别权限的情况下提出此问题的解决方案吗?

还要考虑到文件可能是 10 MB。

提前感谢!

所有静态内容,如图像,css,javascript都由IIS直接提供,不涉及MVC管道。因此,通过在 web.config 文件中添加以下标记,您可以确保所有请求都将由 MVC 管道服务器。这将限制对图像的直接访问。

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</system.webServer>

现在,您必须创建一个 ActionFilter,用于检查有效用户是否正在访问文件。为此,您必须在映像名称中添加一些唯一的标识号。

每当用户请求图像时,只需获取文件名并从中提取唯一编号。 并与当前登录用户进行比较。

最新更新