0

У меня есть сайт Asp.Net MVC 3 с SSL на весь сайт. У меня есть действие входа на контроллер, который принимает имя пользователя и пароль и возвращает токен, который является пользователем для вызова других действий в веб-приложении. В фоновом режиме эти действия называет мой REST api.Asp.Net MVC 3 Безопасный вход

Как я могу быть уверен, что действительный пользователь не пойдет на мой сайт, не войдет в систему и после этого не использует Fiddler для извлечения Token? После этого он сможет назвать мой REST API, используя этот маркер, чтобы сделать некоторые вредоносные вещи ...

ответ

1

Как я могу быть уверен, что действительный пользователь не будет идти на мой сайт, логин и после такого использования Скрипач, чтобы извлечь токен?

Вы не можете. Но в этом весь смысл аутентификации пользователей и авторизации. Вы используете аутентификацию для идентификации своего пользователя (после того, как он предоставил имя пользователя и пароль) и предоставили ему токен (cookie проверки подлинности), который будет использоваться позже для доступа к вашему API.

Вы используете авторизацию, чтобы ограничить то, что пользователь может сделать с этим токеном. Например, вы можете сказать, что только авторизированные пользователи, которые принадлежат к группе Администраторы могут получить доступ данное действие контроллера:

[Authorize(Roles = "Admin")] 
public ActionResult SuperSecret() 
{ 
    ... 
} 

Теперь, даже если пользователь вошел в систему и обладают маркера аутентификации, он не сможет доступ к этому действию контроллера, если он не принадлежит к группе «Администраторы».

+0

Но у него будут гораздо более высокие привилегии (область) моего API, потому что он получил TOKEN через мой сайт. Поэтому я могу сказать, что он будет в роли администратора, как вы говорите ... –

+1

@ RadenkoZec, это означает, что в основном вы не реализовали авторизацию на своем веб-сайте. Вы только выполнили аутентификацию. В настоящее время, если у пользователя есть TOKEN, он может делать что-либо на вашем сайте. И поскольку вы даете этот токен любому аутентифицированному пользователю, вам нечего делать, чтобы он не мог его повторно использовать. Если вы хотите различать разные роли пользователей, вам придется реализовать авторизацию. –

Смежные вопросы