- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пишу cms, встал перед дилеммой между двумя способами проверки доступа пользователя к странице.
Первый очень заманчивый - при авторизации пользователя, загрузить в его сессию названия всех страниц и путей к ним, к которым у него есть доступ. Затем при выполнении кода страницы просто искать путь/название выполняемой страницы в списке доступных страниц, который всегда доступен из переменной сессии. Если путь/страница не найдены, - отказывать в доступе.
Второй способ - это при каждой загрузке выполняемой страницы делать запрос к БД и проверять есть ли у пользователя доступ к этой странице.
Первый способ позволяет создавать страницы с количеством запросов к БД = 0. Второй - минимум один. Но вот не знаю, насколько "нормально" хранить путь/страница в сессии?
Что посоветуете?
Все прекрасно храниться =) Вопрос - а вы данные пользоватлей как собираетесь хранить? БД или файлы? А вообще, конечно делать так, как вам проще и удобнее. Можете прочитать статьи по безопасности в сессиях PHP.
естесственно второй:)
своим одним завпросом вы не облегчите работу сервера))
Лучше оптимизируйте запросы к БД, будет эффективнее;)
Храните в сессии идентификатор, который обрабатывайте на каждой странице и определяйте можно или ни-ни.
По крайне мере в большинстве статей по безопасности описывают именно так...
Я почему-то согласен.
И вообще, помните??? "Никогда не доверяйте данным, пришедшим от пользователя"....
Это я к тому, что идентификатор шифруете вы и ваша база его содержит, а открытые пути в сессии хранить - ну не знаю, так ИМХО и до админки недалеко.
ApocX, в БД.
Идентификатор в сессии это само сабой.
Из достоинств первого способа можно отметить очень быструю проверку доступа к странице и возможность создания страниц без запросов к БД.
Из недостатков я бы отметил то, что например, если админ решит срочно запретить доступ к странице, то пользователь всё равно будет иметь доступ до тех пор, пока не закончится его сессия.
Какие ещё могут быть достоинства и недостатки?