Search code examples
asp.net-corehttp-headersresponse-headersapi-security

Server / X-Powered-By headers not available in runtime


The "Server" and "X-Powered-By" headers are not present in the API response during runtime (or debugging) but appearing only on Postman / browser. My objective is to remove to Server/powered-by headers but they are not available during runtime for removal. API is based on ASP.NET Core 6.

Screenshot of response headers during runtime: Headers during runtime

Screenshot of response headers in Postman

enter image description here


Solution

  • They not appear because these 2 header are added outside runtime as the response go through IIS or IISexpress. If you publish the app and depoly to IIS, you can remove them by modify the webconfig.

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

    For debugging with IIS express. You can change the related settings in applicationhost.config which loacate at projectfolder-->.vs(hidden)-->config-->applicationhost.config. enter image description here