只允许从IP地址调用mvc web api

时间:2016-12-29 14:52:19

标签: security model-view-controller asp.net-web-api2

您好我想通过IP地址限制对我的MVC Web API应用的访问。我认为这可能会成为一个很好的安全“层”。但我有一些问题。

这个api不保护敏感数据,我认为这将有助于阻止某人试图攻击api。我是新手,想要务实的最佳实践。

API和客户端都使用SSL证书,因此IP是静态的。但是客户端上的用户将是未经身份验证的网站公共用户,我的团队对此没有任何有意义的控制权。

在MVC中检测IP的最可靠方法是什么?

欺骗有多容易?

我更喜欢在属性而不是web配置中执行代码,因此如果API的需求发生变化,我们可以在更细粒度的级别上使用不同的机制锁定控制器。

或者这不是一个特别有用的方法吗?我愿意接受替代方案。

1 个答案:

答案 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);
        }
    }