首页 > 解决方案 > 仅本地主机端点

问题描述

假设我有一个可供 Internet 上的任何人访问的 API,但只有一个端点,例如

hxxps://my-domain.com/local我希望只能从 localhost 访问

在创建仅 localhost 端点时是否还有其他可能性,而不是检查 IP 是否是

::1| localhost| 127.0.0.1?

还是 HTTP Server(nginx) 级别的一些技巧?

标签: c#asp.net-core

解决方案


有几种可能:

  • 用#DEBUG pragma 标记它 - 所以它只会处于调试模式
  • 覆盖ExecuteAsync并检查功能标志(请参阅 有条件地禁用 ASP.NET MVC 控制器
  • 在您的应用程序之前在负载均衡器上阻止它(许多 dotnet 核心应用程序是自托管的并通过 localhost 访问 s。例如 Azure App Service)
  • 使用自定义身份验证
  • 使用功能标志(如配置条目或环境变量)并在阻塞的控制器中检查它
  • 使用功能标志(如上)和自定义策略进行此类检查(阅读更多:https ://docs.microsoft.com/en-gb/aspnet/core/security/authorization/policies?view=aspnetcore-2.2 )

推荐阅读