Удалить заголовок «Сервер» из приложения ASP.NET Core 2.1 - PullRequest
0 голосов
/ 22 сентября 2018

Можно ли удалить заголовок ответа Server в приложении ASP.NET Core 2.1 (работающем на Server 2016 с IIS 10)?

Я попытался разместить в Интернете следующее.config:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="X-Frame-Options" value="sameorigin" />
            <add name="X-XSS-Protection" value="1; mode=block" />
            <add name="X-Content-Type-Options" value="nosniff" />
            <remove name="X-Powered-By" />
            <remove name="Server" />
        </customHeaders>
    </httpProtocol>
</sytem.webServer>

Первые четыре изменения в Ответе работали нормально, но заголовок Server не был удален.Я до сих пор вижу "пустельгу"

Ответы [ 3 ]

0 голосов
/ 27 марта 2019

Для тех, кто пытается сделать то же самое (удаляя заголовок ответа Сервера, добавленный веб-сервером Kestrel), но используя вместо этого ASP.NET core 2.2, они должны использовать метод расширения ConfigureKestrel (https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.webhostbuilderkestrelextensions.configurekestrel?view=aspnetcore-2.2#Microsoft_AspNetCore_Hosting_WebHostBuilderKestrelExtensions_ConfigureKestrel_Microsoft_AspNetCore_Hosting_IWebHostBuilder_System_Action_Microsoft_AspNetCore_Server_Kestrel_Core_KestrelServerOptions__) вместометода расширения UseKestrel.

0 голосов
/ 04 апреля 2019

Это решение работает в версии IIS 10+ и позволяет удалять заголовки x-powered-by и server в ответе сервера.

В IIS 10 добавлен новый атрибут: removeServerHeader.

Нам нужно создать web.config файл в основном приложении asp.net со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Затем опубликуйте приложение и перезапустите сайт на IIS.

0 голосов
/ 22 сентября 2018

Заголовок Kestrel Server добавляется слишком поздно в конвейере запросов.Поэтому удалить его через web.config или через промежуточное ПО невозможно.

Вы можете удалить заголовок сервера, установив для свойства AddServerHeader значение false на KestrelServerOptions, это может бытьсделано в Program.cs.

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseKestrel(options => options.AddServerHeader = false)
        .UseStartup<Startup>();
...