Как удалить заголовок сервера в веб-приложении Asp.Net Core 2.2.1? - PullRequest
0 голосов
/ 12 мая 2019

Я использую Asp.Net Core 2.2.1. Я пытаюсь удалить заголовок server из ответа. Я попытался добавить options.AddServerHeader = false; внутрь ConfigureKestrel(), но все равно не удалось. Пожалуйста, помогите мне, где я иду не так.

Вот мой код:

Program.cs

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureKestrel((context,options) => {
                    // Set properties and call methods on options
                    options.AddServerHeader = false;
                });
        }
    }

Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- To customize the asp.net core module uncomment and edit the following section. 
  For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
    <handlers>
      <remove name="aspNetCore" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_HTTPS_PORT" value="44342" />
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
      </environmentVariables>
    </aspNetCore>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Ответное изображение

enter image description here

Спасибо

Абдул

Ответы [ 2 ]

3 голосов
/ 13 мая 2019

Вызов ConfigureKestrel с options.AddServerHeader = false; удалит заголовок сервера, только если ваше приложение работает на Kestrel.Когда вы размещаете свое приложение на IIS / IISExpress, вам нужно добавить web.config со следующими настройками:

<configuration> 
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Эта строка <requestFiltering removeServerHeader="true" /> поможет.Кроме того, вы также можете удалить пользовательские заголовки, такие как X-Powered-By, если хотите, добавив раздел customHeaders в httpProtocol

. Убедитесь, что у вас включена фильтрация запросов

enter image description here

Надеюсь, это поможет.

1 голос
/ 13 мая 2019

Мы можем сделать это с помощью URLRewrite. Обратите внимание, что это не удалит весь заголовок вместе, но удалит его значение.

enter image description here

Ниже приведены шаги:

Шаг 1. Установите URLRewrite. Чтобы установить URLRewrite, перейдите по следующей ссылке

http://www.iis.net/downloads/microsoft/url-rewrite

Шаг 2. Откройте сайт, на котором вы хотите удалить заголовок Сервера, и щелкните раздел URLRewrite.

enter image description here

Шаг 3. Нажмите «Просмотр серверных переменных» на панели «Действия» в правой части. enter image description here

Шаг 4. Нажмите кнопку «Добавить» и введите «RESPONSE_SERVER» в соответствующем текстовом поле. 6562.image_21870933.png

Шаг 5. Теперь нам нужно создать исходящее правило. Чтобы узнать, как создать исходящее правило, перейдите по следующей ссылке

http://www.iis.net/learn/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-modul...

Шаг 6. Создайте исходящее правило следующим образом. 5756.image_036485DD.png

Обратите внимание, что это правило для веб-сайта. Если вы хотите создать правило для всех ваших приложений, создайте правило на уровне сервера. Кроме того, некоторым приложениям, особенно сторонним приложениям, может потребоваться заголовок сервера, поэтому вам может потребоваться удалить это правило для этих приложений.

...