记.Net Framework中wwwroot文件限制用户访问

背景

项目.Net Framework做的,已经线上跑了很多年了,突然发现用户上传的文件都被放到了wwwroot//Content/Upload目录,这些文件都是比较重要的,程序用来读取解析数据的,但是被直接可以公开访问了。

其实要改也很简单,代码改一下,文件挪一下位置就可以了,但是如果这样改就是一个线上大Bug裸奔事故。

需求

其实需求比较简单,就是让wwwroot//Content/Upload目录不可以被访问就可以了。

思路

.Net Framework时代其实就有现在.Net Core中间件的这种雏形。

public class MimeMappingModule : IHttpModule
{
	public void Init(HttpApplication context)
	{
		context.PostResolveRequestCache += (sender, e) =>
		{
			var app = (HttpApplication)sender;
			var response = app.Response;
			var filePath = app.Request.FilePath;

			if(filePath.Contains("/Content/Upload")) 
			{ 
				response.StatusCode = 404;
				response.End();
			}
		};
	}

	public void Dispose() { }
}
  <system.webServer>
    <modules>
         <add name="MimeMappingModule" type="WebApplication4.MimeMappingModule, WebApplication4"/>
    </modules>
  </system.webServer>
posted @ 2024-09-25 12:50  初久的私房菜  阅读(16)  评论(0编辑  收藏  举报
作者:初久的私房菜
好好学习,天天向上
返回顶部小火箭
好友榜:
如果愿意,把你的博客地址放这里
张弛:https://blog.zhangchi.fun/