Доступ к скриптам из других папок

Рейтинг: 1Ответов: 1Опубликовано: 26.10.2014

Приветствую!
Подскажите, можно ли реализовать такую задачу.
Имеется папка, например, User1, нужно сделать так, чтобы вызов файла, находящегося вне этой папки, был невозможен. Иными словами, include('../lib/abc.php'); или unlink(); не срабатывали, за исключением тех файлов и папок, что находятся в текущей директории пользователя.

Ответы

▲ 1

Для каждой папки User(User1, user2 etc) создавайте конфигурационный файл, в котором указывайте $secret_key - уникальный ключ для каждой директории, а также в имя самого файла добавляйте этот ключ (прим. $secret_key = 'dhJYmnk87asd'; config_dhJYmnk87asd.php). В любом из файлов, запускаемых в директории пользователя, первоначально инклудится файл конфигурации, после чего сверяется $secret_key. Получается, что пользователь, не зная ключ другого пользователя, не сможет ни подключить конфиг другого пользователя, и ни пройти проверку на ключ.
По поводу унлинк надо думать. Но как вариант в названия всех пользовательских файлов добавлять $secret_key. Получить доступ или удалить можно только методом долгого подбора. Но в таком случае можно поставить проверку на множественные вызовы и блокировать аккаунт пользователя.