запись php-скриптов в файлы, не предназначенные для записи в мире

StackOverflow https://stackoverflow.com/questions/34015

  •  09-06-2019
  •  | 
  •  

Вопрос

Как можно разрешить PHP-сценарию записывать в файл с ограничениями высокой степени безопасности, например разрешать запись в него только одному пользователю?

Сложность заключается в том, что скрипт PHP работает как пользователь с низким уровнем разрешений (может быть, apache, или www, или никто?), и даже если я chown apache the_writable_file, каталог это в может быть недоступно для записи для пользователя низкого уровня. В целом, как обычно PHP может работать с локальными файлами безопасным способом?

Это было полезно?

Решение

К сожалению, на общих хостах, которые используют mod_php, нет способа ограничить доступ для защиты файлов для вашего веб-приложения и входа в систему пользователя.

Решение состоит в том, чтобы запустить ваше веб-приложение от имени пользователя для входа . Когда вы сделаете это, права доступа к файлам UNIX могут правильно заблокировать всех остальных. Есть несколько способов реализовать это, в том числе SuExec , suPHP или запуск PHP с FastCGI с mod_fcgid или mod_proxy_fcgid . FastCGI - мой любимый способ.

Другое решение - использовать выделенный хост или виртуальный частный сервер.

Другие советы

Конечно, chgrp apache the_writable_file и chmod g + w the_writable_file . После этого только ваш защищенный пользователь и пользователь apache смогут писать в файл. Поскольку пользователю apache, как правило, запрещен вход в систему, вам нужно беспокоиться только о том, чтобы веб-пользователи записывали в ваш защищенный файл с помощью демона http.

Все содержащие папки должны иметь разрешения на выполнение.

Например, если файл находится в / foo / bar / the_writable_file , каталоги " foo " и "бар" оба должны иметь разрешение на выполнение для доступа к the_writable_file, даже если у них нет разрешения на чтение / запись.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top