убрать переход по прямой ссылке

81
29 января 2022, 19:00

Есть у меня сайт с единой точкой входа, но при попытке перейти по прямой ссылке можно зайти в закрытые разделы сайта. Как можно запретить переходить на страницы по прямым ссылкам? (Типа example.com/admin/ahome.php не должно работать, а example.com/ahome - должно работать)

Answer 1

Для апача запретить доступ к файлу можно так

<FilesMatch ~ "ahome\.php$">
  Order allow,deny
  Deny from all
</FilesMatch>

несколько файлов

<FilesMatch ~ "(ahome|xxx|example)\.php$">
  Order allow,deny
  Deny from all
</FilesMatch>

Также можно запретить доступ к папке разместив в ней файл .htacсess со строкой

Deny from all

Под nginx есть похожая функциональность.

Answer 2

Не претендую на лучшее решение, но я бы сделал так:

  1. Установил бы сессию.
  2. При входе на index.php или нужный входящий файл и после манипуляций определяющих роль пользователя (Админ, не админ, может переходить или нет) установить в сессию клиента триггер проверки. Пример : $_SESSION['trigger'] = "1";
  3. Проверять этот триггер при переходе на страницы с закрытым содержимым.

То есть суть изначально в том, чтобы разделить тех, кому доступ давать и кому нет.

Если же Вам надо ограничить доступ для всех, или для всех, кроме используемого ip, то воспользуйтесь примером Ivan Bolnikh, добавив в исключения необходимый ip.

READ ALSO
PHP замена прозрачного фона в png на белый

PHP замена прозрачного фона в png на белый

Всем привет, делаю загрузку картинок для превью товаров(в магазине)

131
Назначить ключи массива из переменной. PHP

Назначить ключи массива из переменной. PHP

Мне необходимо создать массив с ключами и значениями из пременныхКод примерно такой

59
Посчитать количество каждой цифры и создать объект

Посчитать количество каждой цифры и создать объект

У меня есть функция, которая извлекает числа из аргументов и возвращает его в виде строки:

168
Проблемы с анимацией jQuery

Проблемы с анимацией jQuery

У меня есть код, который выполняется при вызове функции theBestFunction:

123