只允许从IP地址调用mvc web api
问题描述:
您好我想限制通过IP地址访问我的MVC Web API应用程序。我认为这可能会形成一个很好的安全“层”。但我有一些问题。只允许从IP地址调用mvc web api
这个api没有保护敏感数据,我认为这将有助于阻止某人试图破解api。我是新手,想要实用的最佳实践。
API和客户端都使用SSL证书,因此IP是静态的。但客户端的用户将是未经过身份验证的网站公共用户,我的团队对此没有任何有意义的控制。
在MVC中检测IP最可靠的方法是什么?
欺骗有多容易?
我更喜欢在属性而不是web配置中进行代码,所以如果团队的需求发生变化,我们可以通过不同的机制将控制器锁定在更多颗粒级别上。
或者这不是一个特别有用的方法吗?我愿意选择。
答
尝试与CORS做到这一点..你可以选择IP(主机)可以与您的后端comunicate ...类似:
在Startup.cs:
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
var corsPolicy = new CorsPolicy
{
AllowAnyMethod = true,
AllowAnyHeader = true,
SupportsCredentials = true,
Origins = { "http://www.example.com", "http://localhost:38091", "http://localhost:39372" }
};
app.UseCors(new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(corsPolicy)
}
});
ConfigureAuth(app);
}
}
我喜我要添加CORS,但我正在考虑访问不是浏览器的API,例如恶意的国家赞助的控制台应用程序。那么也许这不太可能!但我对如何确定IP地址不是来自浏览器的源以及是否可靠提供了兴趣。 – user1102550