假设我有一个 API,可供互联网上的任何人访问,但有一个端点,例如
hxxps://my-domain.com/local
我希望只能从本地主机访问
除了检查 IP 是否为本地主机以外,还有其他可能性吗?
::1
| 本地主机
|127.0.0.1
?
或者 HTTP 服务器(nginx)级别的一些技巧?
最佳答案
有几种可能性:
- 用 #DEBUG pragma 标记它 - 所以它只会处于 Debug模式
- 重写
ExecuteAsync
并检查功能标志(请参阅 Conditionally disable ASP.NET MVC Controller) - 在应用程序之前在负载均衡器上阻止它(许多 dotnet 核心应用程序是自托管的,并通过本地主机访问。例如 Azure 应用服务)
- 使用自定义身份验证
- 使用功能标志(例如配置条目或环境变量)并在被阻止的 Controller 内检查它
- 使用功能标志(如上)和自定义策略进行此类检查(了解更多:https://learn.microsoft.com/en-gb/aspnet/core/security/authorization/policies?view=aspnetcore-2.2)
关于c# - 仅本地主机端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54254870/