服务器/X-Powered-By 标头在运行时不可用

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

提问人:sprash95 提问时间:3/14/2023 最后编辑:sprash95 更新时间:3/14/2023 访问量:467

问:

“Server”和“X-Powered-By”标头在运行时(或调试)期间不出现在 API 响应中,而仅出现在 Postman/浏览器上。 我的目标是删除到 Server/powered-by 标头,但它们在运行时无法删除。API 基于 ASP.NET Core 6。

运行时响应标头的屏幕截图:Headers during runtime

Postman 中响应标头的屏幕截图

enter image description here

asp.net-core http-headers 响应标头 api-security

评论

0赞 hamaronooo 3/14/2023
是只在调试中还是两者兼而有之?
0赞 sprash95 3/14/2023
调试和运行时

答:

0赞 hamaronooo 3/14/2023 #1

程序

  1. 打开 IIS 管理器。
  2. 连接到本地服务器
  3. 选择默认 Web 网站。 4.双击 HTTP 响应标头。选择 X-Powered-By。点击 删除。
  4. 出现提示时,单击“是”以确认更改。对于 NuGenesis 版本 9.1+:
  5. 对这两个站点重复步骤 4 到 7 “AuditTrailClientApp”和“AuditTrailWebServer”。
  6. 点击本地 服务器条目。
  7. 双击“配置编辑器”。选择部分 “system.webServer/proxy”。
  8. 将“arrResponseHeader”设置为 False。单击应用。
  9. 重新启动 Web 服务器。
1赞 Qiang Fu 3/14/2023 #2

它们不会出现,因为当响应通过 IIS 或 IISexpress 时,这两个标头是在运行时外部添加的。 如果将应用和 depoly 发布到 IIS,则可以通过修改 webconfig 来删除它们。

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

用于使用 IIS Express 进行调试。您可以更改 applicationhost.config 中的相关设置,这些设置位于 projectfolder-->.vs(hidden)-->config-->applicationhost.config。enter image description here