类似的网址: yourDomain.com /%
抛出错误:400错误的请求
a)-这不会进入应用程序请求周期,而是由HTTP.SYS处理,并显示服务器标头,如下所示:Microsoft-HTTPAPI / 2.0
b)-另外,如果您使用burp拦截器更改主机地址,则服务器头将引发404错误,如下所示:Microsoft-IIS / 10.0
我已经检查了以下URL: Removing Server and X-Powered-By HTTP Headers on Azure Web Site Preview
但是以下Azure票证显示AG允许从响应中删除标头: https://feedback.azure.com/forums/217313-networking/suggestions/16487725-remove-server-framework-headers-from-application-g
但是没有显示如何实现它,以便当请求不在您的应用程序请求周期内时可以删除“ Server”标头。
机票也是如此: Remove sensitive Headers from Azure PaaS hosted Websites
请注意,该应用程序托管在Azure WebApp(而非VM)中。
因此,总而言之,我想在Azure WebApp中托管的应用的上述两种情况下隐藏/更改“服务器”标头。
答案 0 :(得分:0)
无法删除Azure Web App上的Server
标头。
作为一种解决方法,我们可以将Web应用程序托管在VM中的IIS上,而不是Azure Web App中。
要实现此目的,我们可以在搜索,下载和安装后使用Microsoft的官方UrlScan工具。
"C:\ Windows\ System32\ inetsrvurlscan"
中有一个UrlScan.ini文件,需要使用管理员权限打开。我的方法是转到管理员的cmd,转到目录,运行命令Notepad UrlScan.ini
,然后我们可以使用记事本对其进行编辑。其中有一个“删除服务器标头”,设置为1,重新启动IIS,然后它将生效。然后访问该网站,然后按F12键发现服务器丢失。
我们可以在UrlScan 3.1处获得UrlScan
关于另一个敏感标头X-AspNet-Version
,如果您使用的是ASP.NET FX MVC,我们可以通过代码将其删除:
protected void Application_Start()
{
//remove version info of ASP.NET(remove 'X-AspNet-Version' header)
MvcHandler.DisableMvcResponseHeader = true;
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
答案 1 :(得分:0)
要在基于Windows / IIS的Azure Web应用程序中删除服务器标头或由标头提供动力,您需要添加具有以下内容的web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<security>
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer>
</configuration>
如果您使用的是基于Linux / Kestrel的服务器,则需要将Program.cs文件中的CreateHostBuilder更改为以下内容:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseKestrel(options => options.AddServerHeader = false)
.UseStartup<Startup>();
});