Asp.Net MVC5 - 如何从静态元素响应(例如svg文件)中删除,,Server“标头

Asp.Net MVC5 - how to remove ,,Server" header from static elements response (e.g svg files)

提问人:DawDiag 提问时间:10/27/2023 最后编辑:DawDiag 更新时间:10/27/2023 访问量:21

问:

我正在尝试从 mvc5 应用程序的标头响应中删除服务器信息 asp.net。我向应用程序添加了以下代码,这些代码负责大多数服务器响应:

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    HttpContext.Current.Response.Headers.Remove("Server");
}

我试图摆脱的问题是,当服务器返回静态数据(如img元素的图标)时,例如我有以下代码:

 <img src="~/Content/images/my_super_logo.svg" alt="super-app"/>

从服务器生成并返回以下响应:

请求网址:http://localhost:51989/Content/images/my_super_logo.svg 响应标头:服务器:Microsoft-IIS/10.0

我正在寻找任何解决方案,允许我在获取静态数据时控制服务器标头。还有其他可以在 Global.asax.cs 文件中过滤的内容吗?

安全性 ASP.NET-MVC-5 响应标头

评论

0赞 Mikhail 11/12/2023
stackoverflow.com/questions/3418557

答:

0赞 gbjbaanb 10/27/2023 #1

我认为您可以在静态文件托管后运行的 asp.net 的响应堆栈中放置一些中间件,但我不确定这是否实用 - 当 ASP.NET 想要按照自己的方式做事时,将其放在正确的位置是很棘手的,添加中间件并不是那么容易。

但是,您可以在 Web 上运行 Kestrel,并将其隐藏在另一个 Web 服务器后面,向其传递请求(如果不出意外,为了安全)。如果您使用 nginx,您可以轻松地从响应中删除标头,如果您设置了正确的标头 (x-accel-redirect),您还可以直接通过 nginx 提供这些静态文件。