2015-11-02 2 views
2

Я использую onRequest() для проверки уровня доступа пользователя, и если у пользователя есть привилегия для доступа к странице, то укажите запрошенный шаблон. Если он этого не сделает, я перенаправляюсь на последнюю активную страницу или страницу по умолчанию. Последняя активная страница хранится в области session.Показать пользовательское сообщение для несанкционированного доступа к странице на перенаправленной странице

Я пытаюсь показать сообщение для несанкционированного доступа на перенаправленной странице.

Простейшим решением будет добавить параметр url на перенаправленную страницу.

Есть ли какой-либо другой подход для этого?

+0

Я думаю, что самым простым решением было бы забыть о последней активной странице и отправить всех на страницу по умолчанию. В противном случае вам нужен код сообщения на каждой странице. –

ответ

4

Поскольку вы сохраняете «последнюю активную» страницу в области сеанса, вы можете легко сохранить «сообщение перенаправления» в области сеанса.

Проблема с ссылками, которые вытягивают свое состояние из сеанса, заключается в том, что они становятся нестабильными, когда нет сеанса (например, тайм-аут). В следующий раз, когда ссылка будет перезагружена (например, восстановление браузера), страница не имеет контекста для отображения.

Следовательно, сохранение состояния в URL-адресе не так уж плохо. Либо это, либо вы идете с сеансом и явно пишете свой код, чтобы разумно обрабатывать условие «без сеанса».

EDIT: Обратите внимание на комментарий @Mark об опасностях XSS. Хотя это можно смягчить путем правильного использования HtmlEditFormat() и URLEncodedFormat(), существует общая опасность того, что люди злоупотребляют этой функцией, чтобы создавать URL-адреса, которые делают вашу страницу отображаемыми недопустимыми сообщениями. Использование кодов ошибок вместо ясных текстовых сообщений в URL-адресе очень желательно. Это также приводит к более коротким URL-адресам и является интернационализацией.

+2

Я бы добавил, что передача ошибки «код», а затем отображение сообщения из массива сообщений на основе кода является «лучшей практикой», которая просто передает сами сообщения по URL-адресу. Когда вы передаете что-то по URL-адресу, который впоследствии отображается на странице, вы открываете себя для атак XSS. –

+0

Абсолютно, это чрезвычайно важный момент. – Tomalak

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