У меня есть файл php, который записывает определенные значения в мою базу данных. Я выполняю этот файл каждые 20 секунд с помощью CRON, но я не хочу, чтобы кто-то мог перейти к местоположению этого файла и выполнить его из Интернета. Я установил права доступа к файлу 644, но я все еще могу перейти на сайт website.com/phpfile.php и записать данные в базу данных. Как я могу предотвратить выполнение сценария публикой?
Правильные права доступа к файлу PHP, который не разрешает выполнение общедоступными
comment
Эээ, выложить вне webroot?
- person frz3993   schedule 28.12.2015
comment
Да, думаю, я могу это сделать, мне просто интересно, почему 644 не работает.
- person Darkstar   schedule 28.12.2015
Ответы (1)
В типичной настройке, используемой в наши дни, сценарий php
не требует, чтобы бит разрешения выполнения выполнялся сервером http. Это потому, что запрос не запускает сценарий, это процесс, основанный на операционной системе. Вместо этого http-сервер только читает файл и передает контент в механизм php
, загруженный как модуль. Таким образом, единственное необходимое разрешение - это то, что процесс http-сервера может читать сценарий.
Все было бы иначе, если бы вы использовали php
с помощью CGI
вместо модуля http-сервера. Но это серьезно сказывается на производительности именно потому, что для каждого запроса нужно разветвлять новый процесс.
person
arkascha
schedule
27.12.2015