我在 IIS 后面的服务器中部署了一个 ASP.NET 核心 REST API。REST API 由 Angular JS Web 应用程序和移动(Android/IOS)应用程序使用。对于授权,我使用的是 JWT token()。最近通过安全审计,他们发现存储在本地存储中的 JWT 可以被同一组织的其他攻击者窃取并用于冒充(例如,员工利用经理的功能)。
我想将这个人或那台机器标记到那个 JWT 上,这样当 JWT 被盗时,攻击者就不能滥用它,或者不会使用那个被盗的令牌。我尝试使用 JWT 令牌标记 IP 并将这些查找存储在服务器中(在内存缓存中)。下面是我试过的代码,没有用。
private readonly IHttpContextAccessor _httpContextAccessor;
public TestController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
var ipAddress = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
每次我从不同的机器请求时,我都希望输出不同。但是每次像 15.11.101.25 这样的实际输出都是相同的 IP(尽管我从不同的机器上尝试过)。如果有的话,请与我分享一些更好的解决方案。原谅我的英语。