VSO*_*VSO 8 javascript c# security http asp.net-web-api2
假设我写了一段代码,对http api进行http调用,例如:
$http.get('www.myapi.com/api/controller/endpoint').then(function(resp){...})
Run Code Online (Sandbox Code Playgroud)
然后我将此代码提供给居住在不同城市的两个人,他们从各自的房子(仅从某些浏览器)访问我的API.我的API可以从http请求中获取哪些信息,这样我就可以告诉A人和B人打电话给它?IP始终可用吗?MAC地址是否可用?那里还有什么?
在调用我的API时,A人如何假装成B人?
如果人C从他们自己的Web API(后端)调用我的Web API怎么办?是否会提供相同的信息,或者会有什么不同?
这是一个普遍的问题,但是如果你想要具体,我们假设ASP.NET Web API 2正在接收http请求.
您正在描述对预身份验证的渴望。
IP 将始终可用。您可以将服务限制为仅这些 IP 范围。这不是进行身份验证的好方法。
试图绕过执行身份验证是不安全的。您应该使用正确的身份验证方法。将 IP 限制与其他方法结合起来就可以了。
John Meyer 的答案本质上是基于预共享令牌的用户身份验证。拥有有效的令牌就意味着不断登录。与基于典型令牌的用户身份验证(建立具有有限生命周期的临时令牌)相比,令牌更容易受到损害。
如果您决定采用预共享令牌路线,请使用支持令牌随时间正确轮换或排列的方法,这样就不易受到重放攻击。
对于这种情况,最佳选择是典型的基于会话令牌的用户身份验证。
如果您实际上对谁在使用您的服务不Set-Cookie感兴趣,只对他们进行唯一标识,您可以通过所有客户端都应自动尊重和支持的 http 标头为每个用户安全地建立一个会话(或永久或任意生命周期)cookie ,然后使用它作为您的跟踪方法。