Вход

Просмотр полной версии : Как ограничить перемещение пользователя по личному кабинету?


srg123
22.11.2019, 12:51
Пожалуйста подскажите решение или "где спросить"?
Задача: ограничить перемещение пользователя по личному кабинету вебсайта. Доступ к коду только тот, что предоставляет вебсайт.
Пример: торговля через сайт. Есть доступ к торговым операциям, но нет доступа к личным данным или "выводу денег". Т.е. я провожу авторизацию в лич.каб., запускаю "программу", после чего у оператора есть возможность осуществлять торговые операции, но нет возможности перейти в другие разделы личного кабинета
Пояснение:
условная структура личного кабинета
три раздела
http://site.ru/торговля/....
http://site.ru/лич.данные/....
http://site.ru/вывод-ввод/....
Если http://site.ru/торговля/ меняется на другое, происходит выход из личного кабинета

PS пример условный, требуется защита от "простого любопытства"

laimas
22.11.2019, 13:05
Определите права, в базе это удобно делать набором типа SET. При запросах страниц/раздела кабинета проверяются права пользователя с правами доступа запрашиваемого раздела и разрешается вход, если разрешен.

srg123
22.11.2019, 13:10
Это можно сделать запустив скрипт на уже исполняемой странице?
PS Спасибо! извените, не программист :(

laimas
22.11.2019, 13:23
Это можно сделать запустив скрипт на уже исполняемой странице?

Это не только скрипт нужен, нужны и определения, а добавить это в имеющийся проект конечно можно. Тип SET, это битовое представление множества. Пусть в базе определены два права доступа: администратор и пользователь. В базе это поле типа SET будет описано так:

Администратор
Пользователь

а внутреннее представление будет будет иметь такие значения:

1 Администратор
2 Пользователь

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

А - Администратор - числовое значение права = 1
В - Администратор, Пользователь - числовое значение права = 3
С - Администратор, Пользователь - числовое значение права = 3

описываемые также полем типа SET. Если при запросе пользователем раздела логическая операция И над правами пользователя и правом доступа к разделу возвращает true, то разрешается доступ к разделу, иначе ...