2015-05-06 3 views
0

У меня есть простое приложение mvc, где я бы хотел проверить логин пользователя для каждой загрузки страницы. Несмотря на то, что это вход в систему на основе сеанса, я все равно хочу проверить, что информация находится в безопасности.MVC: User Verification

Мой вопрос: где должна проверяться функция пользователя? Должен ли он работать в контроллере, который выполняется перед запросом контроллера?

+0

Вы пробовали что-нибудь? рассмотрите размещение образца кода. – Augwa

+0

Да, управление доступом обычно выполняется во время процесса начальной загрузки с использованием выделенного контроллера. – rjdown

+0

. Я не совсем понимаю, что вы подразумеваете под «быть в безопасности», я хотел бы каждый раз проверять информацию ». * Какая * «информация», за пределами токена сеанса, вы намерены «проверить»? –

ответ

1

Я не совсем понимаю, что вы подразумеваете под «быть в безопасности», я хотел бы каждый раз проверять информацию ». Что такое «информация», за пределами токена вы намерены «проверить»? Это должно быть излишним: если пользователь дает токен, который вы, например, узнаете от IP-адреса, который вы ему выдали, дальнейшая проверка не требуется.

Что касается второго вопроса, в любом приложении MVC всегда будет сказано «несколько предварительных предварительных условий»: получение строки URL (и любых параметров GET/POST), убедившись, что они как ожидалось, и, да, подтверждать токен сеанса, чтобы быть уверенным в том, что оно действительно и (b), что идентифицированный таким образом пользователь имеет право сделать этот запрос. Если это не так, запрос может быть выгружен с помощью 403 Forbidden или аналогичного ответа: нет причин для продолжения.

Таким образом, если и когда «реальный» контроллер делает, то получить переданный запрос, может считаться само собой разумеющимся, что запрос (по-видимому) хорошо сформирован и разрешен. (Или, по крайней мере, , прошедший проверку подлинности:, на данный момент запросчик имеет «проверенную и заслуживающую доверия идентификацию».)

+0

Спасибо за ввод. Я думал, что лучше всего проверить информацию о сезоне на каждой странице, но поймите, что это может быть излишним. – Ralph

+0

Вы * определенно * должны тщательно проверить токен. Вы должны обратить внимание на подделку подбора сторонних запросов (CSRF) и «всех обычных подозреваемых». Но если входящие запросы представляют собой проверенный токен * и *, в противном случае согласуются с * e-v-e-r-y-t-h-i-n-g *, которые вы знаете о «том, кого вы [недавно] выпустили», этого должно быть достаточно. –