我正在和一位同事讨论 API 的开发,下面的提议让我想知道它的安全性。
设想:
在服务器 A 上运行的 Web 应用程序(除其他功能外)允许管理员用户指定任意 URL,以及与每个 URL 相关的帐户中的用户的安全性。所以基本上:
URL:"/foo/bar", UserID:1234, AllowedToView:true
然后,管理员用户在自己的独立服务器 B 上运行自己的 Web 应用程序。他们希望通过检查来检查已登录该服务器 B 应用程序的最终用户是否有权访问该服务器 B 应用程序上的特定 URL服务器 A 上的 API。
此检查可能有 2 种形式:
发生在用户从服务器 B 请求 url 的上下文中的服务器端 HTTP 调用(从服务器 B 到服务器 A),因此如下所示:
User requests "/foo/bar" with their client from server B During the processing of that request on server B, it makes an HTTP call to server A to check if that user has access to the requested URL With the response from server A, server B can then either allow the user to access or redirect, send 403 access denied, etc.
从最终用户的客户端直接向服务器 A 发出 AJAX 请求,并利用 JavaScript 响应。跨域脚本的问题在这里可能会出现问题。
立即想到的一个挑战是,管理员用户必须有一种方法可以直接将在服务器 B 上访问其 Web 应用程序的最终用户与在服务器上的 Web 应用程序中与该用户关联的 UserID 关联起来A. 但是让我们假设已经以某种方式优雅地解决了:-D。
我的问题更多地与与这种情况相关的固有(内部)安全性有关。如果向服务器 A 发出的请求(在上面的 1 和 2 中)是使用 https 发出的,那么可以指望响应的完整性吗?