我有一个ASP.NET核心Web API应用程序,它与我的ASP.NET核心MVC应用程序(UI)是分开的。我不想将它们组合起来有几个原因,因为将来许多不同的客户可能需要访问API。
MVC应用程序以两种不同的方式调用API:
1.使用MVC控制器中的System.Net.HttpClient填充视图模型
2.在进行jQuery AJAX调用时,我认为最好直接调用API。 (注意:我启用了CORS以允许来自MVC应用程序的调用)。这与Angular客户端直接调用API相同。
我的问题:
我正在做的非常常见的是使用jQuery直接从客户端调用API,并且在不使用AJAX时仅在加载视图数据时在控制器中调用System.Net.HttpClient。如果AJAX调用首先转到MVC控制器,那么让他们使用System.Net.HttpClient让MVC控制器发出DELETE请求,这样我就不会直接从客户端调用API了吗?
安全问题是什么?我有点紧张从jQuery直接调用API。我觉得任何人都可以说他们是localhost:6000(我的MVC端口)并向localhost发出DELETE请求:6001 / api / users / 1(我的API端口)。
答案 0 :(得分:2)
你绝对正确地担心这一点。您应该保护您的应用程序,确保访问这些API方法的任何请求都是经过授权的。
我建议您阅读10 Points to Secure Your ASP.NET MVC Applications.,了解如何保护您的应用免受此类攻击和其他一些常见安全漏洞。