Как настроить права для php файла, чтоб запретить ему удаление/изменение или просмотр директории или файла?
Нет доступа к конфигурациям, по тому, что я на бесплатном хостинге, есть только .htaccess и php.
Как сделать, чтоб ./script.php не имел права удалять/изменять папку ./apps ?
У меня есть альтернативное решение:
Не выполнять напрямую файл ./script.php, а выполнить файл ./validator.php, который проверит ./script.php на наличие строк, которые могут навредить папке ./apps (прочитать/удалить/изменить папку/файл) и сохранит измененный ./script.php (с удаленными строками) во временный файл - ./temp/script.php, затем включит в себя этот темп-файл. Или можно просто выдать ошибку при обнаружении неугодных строк. Или можно сразу заменить ./script.php на измененный.
Только у меня один вопрос - где найти такой валидатор, по тому что сам я такое еще никогда не делал и вроде не собирался
У меня есть альтернативное решение:
Не выполнять напрямую файл ./script.php, а выполнить файл ./validator.php, который проверит ./script.php на наличие строк, которые могут навредить папке ./apps (прочитать/удалить/изменить папку/файл) и сохранит измененный ./script.php (с удаленными строками) во временный файл - ./temp/script.php, затем включит в себя этот темп-файл. Или можно просто выдать ошибку при обнаружении неугодных строк. Или можно сразу заменить ./script.php на измененный.
Только у меня один вопрос - где найти такой валидатор, по тому что сам я такое еще никогда не делал и вроде не собирался
не удивительно, что никто не понимает - потому что ты и не объяснял. а валидатор ищи. оно тебя на врем займет. Чем больше будешь искать, тем меньше наделаешь глупостей.
Анатолий K: почему невозможно? берем preg_match и ищем по шаблону те функции, которые нельзя исполнять. Если такие находим - выполняем die(). А проблема в том только, что этот код может оказаться не кодом, а частью экранируемой информации. Конечно, шанс этого очень мал, но лучше сделать нормальное разделение, чтоб мне не жаловались, что в комментах оставили код, а он исчез, а то и вообще страница не отображается.
В вашем случае скорее всего никак. Разве только удалить из script.php весь код, который может изменять папку ./apps.
Если бы была полноценная машина то с помощью настройки SELinux. Без него если весь код выполняется от одного пользователя, то и права будут одинаковые. И еще PHP как CGI придется выполнять.
У меня есть альтернативное решение:
Не выполнять напрямую файл ./script.php, а выполнить файл ./validator.php, который проверит ./script.php на наличие строк, которые могут навредить папке ./apps (прочитать/удалить/изменить папку/файл) и сохранит измененный ./script.php (с удаленными строками) во временный файл - ./temp/script.php, затем включит в себя этот темп-файл. Или можно просто выдать ошибку при обнаружении неугодных строк. Или можно сразу заменить ./script.php на измененный.
Только у меня один вопрос - где найти такой валидатор, по тому что сам я такое еще никогда не делал и вроде не собирался