Недавно я прочитал интересную статью об инциденте с CitiGroup Hacking.
http://www.nytimes.com/2011/06/14/technology/14security.html?_r=2&pagewanted=1&ref=technology
Это заставило меня задуматься, скажем, у меня есть таблица конфиденциальных данных о сотрудниках в моей базе данных с 100 000 строк. Таблица имеет первичный ключ с именем Id, который является столбцом Identity.
Сотрудник может войти на веб-портал, и его данные будут получены через URL-адрес RESTful ({Controller} / {Action} / {Id}), например, / Сотрудник / Подробности / 31
Теперь, что мешает мне заменить параметр {Id} на любой параметр (например, Id = 32) и
получить детали для Сотрудника № 32? Это то, что случилось с CitiGroup?
Как вы это предотвращаете? то есть когда пользователь уже прошел аутентификацию на веб-портале
но не авторизован для просмотра записей других пользователей? Должен ли я использовать какой-то другой конкретный «токен» для
клиент в дополнение к Id?