我有整个站点上都有 SSL 的 Asp.Net MVC 3 站点。我在控制器上确实有登录操作,它接受用户名和密码并返回作为用户在 Web 应用程序中调用其他操作的令牌。在后台该操作调用我的 REST api。
如何确保有效用户不会访问我的网站、登录并使用 Fiddler 提取令牌?之后,他将能够使用该令牌调用我的 REST api 来做一些恶意的事情......
我有整个站点上都有 SSL 的 Asp.Net MVC 3 站点。我在控制器上确实有登录操作,它接受用户名和密码并返回作为用户在 Web 应用程序中调用其他操作的令牌。在后台该操作调用我的 REST api。
如何确保有效用户不会访问我的网站、登录并使用 Fiddler 提取令牌?之后,他将能够使用该令牌调用我的 REST api 来做一些恶意的事情......
如何确保有效用户不会访问我的网站、登录并使用 Fiddler 提取令牌?
你不能。但这就是用户身份验证和授权的全部意义所在。您使用身份验证来识别您的用户(在他提供用户名和密码之后)并给他一个令牌(身份验证 cookie),稍后将使用该令牌来访问您的 API。
您使用授权来限制用户可以使用此令牌执行的操作。例如,您可以说只有属于管理员组的登录用户才能访问给定的控制器操作:
[Authorize(Roles = "Admin")]
public ActionResult SuperSecret()
{
...
}
现在,即使用户已登录并拥有身份验证令牌,除非他属于管理员组,否则他将无法访问此控制器操作。