您好我想通过IP地址限制对我的MVC Web API应用的访问。我认为这可能会成为一个很好的安全“层”。但我有一些问题。
这个api不保护敏感数据,我认为这将有助于阻止某人试图攻击api。我是新手,想要务实的最佳实践。
API和客户端都使用SSL证书,因此IP是静态的。但是客户端上的用户将是未经身份验证的网站公共用户,我的团队对此没有任何有意义的控制权。
在MVC中检测IP的最可靠方法是什么?
欺骗有多容易?
我更喜欢在属性而不是web配置中执行代码,因此如果API的需求发生变化,我们可以在更细粒度的级别上使用不同的机制锁定控制器。
或者这不是一个特别有用的方法吗?我愿意接受替代方案。
答案 0 :(得分:0)
尝试使用CORS ...你可以选择哪个ip(主机)可以与你的后端通信...类似于:
在你的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);
}
}