我有一个独立于 ASP.NET Core MVC 应用程序 (UI) 的 ASP.NET Core Web API 应用程序。出于多种原因,我不想将它们组合起来,因为将来许多不同的客户端可能需要访问 API。
MVC 应用程序以两种不同的方式调用 API:
1. 在 MVC Controller 中使用 System.Net.HttpClient 填充 View 模型。
2. 在进行 jQuery AJAX 调用时,我认为最好直接调用 API。 (注意:我启用了 CORS 以允许来自 MVC 应用程序的调用)。这与 Angular 客户端直接调用 API 是一样的。
我的问题:
这是我经常做的事情,在不使用 AJAX 且仅加载 View 数据时,使用 jQuery 直接从客户端调用 API,另外在 Controller 中使用 System.Net.HttpClient。 AJAX 调用是否应该首先转到 MVC Controller ,然后让 MVC Controller 使用 System.Net.HttpClient 发出 DELETE 请求,这样我就不会直接从客户端调用 API?
安全问题是什么?我有点紧张直接从 jQuery 调用 API。我觉得任何人都可以假装自己是 localhost:6000 (我的 MVC 端口)并向 localhost:6001/api/users/1 (我的 API 端口)发出 DELETE 请求。
最佳答案
您对此的担忧完全正确。您应该保护您的应用程序免受此影响,确保访问这些 API 方法的任何请求都得到授权。
我建议阅读10 Points to Secure Your ASP.NET MVC Applications.概述如何保护您的应用程序免受此类攻击和其他几个常见的安全漏洞。
关于c# - 从 MVC 应用程序中的客户端和 Controller 调用 ASP.NET WebAPI 的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44992293/