Вопросы по PHP / CHMOD - PullRequest
       4

Вопросы по PHP / CHMOD

1 голос
/ 30 сентября 2011

Я работаю на PHP-сайте. В админке есть раздел, который проверяет поле формы и на основе этого поля ищет папку на сервере. Эта папка будет в подкаталоге. Если его не существует, его нужно создать. После этого, ранее существовавший или нет, PHP запишет файл в папку.

В этих папках будут храниться изображения и файлы PDF, которые будут просматриваться и / или загружаться на основной сайт.

Вот пример структуры каталогов: merchants / east / user123 В приведенном выше случае торговцы и восток обязательно будут существовать, и пользователь123 может существовать или иным образом быть создан.

Учитывая эту информацию, мои вопросы касаются прав доступа к папкам.

  • Какие папки должны быть установлены для лучшей безопасности.
  • Должен ли я открывать их шире во время операций, а затем изменять их (в PHP) после того, как я сделал что-то более безопасное?
  • Какие папки верхнего уровня должны быть установлены?

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

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

Вы можете подумать о разрешениях 750 или 700, если вы особенно заинтересованы в том, чтобы другие локальные пользователи или службы на веб-сервере могли видеть файлы в этом каталоге.

Для прав доступа к файлам: 644 или 600как обычно, им не нужно разрешение на выполнение.

Хорошим компромиссом может быть использование 750 для каталогов и 640 для файлов с владельцем, установленным в apache, и изменение группы (chgrp) так, чтобы группа для файла позволяладоступ к пользователю, с которым вы обычно редактируете файлы сайта.

Я не могу думать о каком-либо значительном преимуществе увеличения и затем уменьшения разрешений php-скрипта.

Я думаю, вы должны рассмотреть комментарий @ chunk о том, что загруженные файлы должны принадлежать общедоступному html.каталог полностью и обслуживая их обратно через скрипт доставки файлов.В противном случае вам потребуется тщательная проверка содержимого файлов и ужесточение конфигурации apache для этого конкретного каталога - возможно, с использованием некоторой проверки mimetype, чтобы убедиться, что файлы действительно являются документами и PDF-файлами.

1 голос
/ 30 сентября 2011

770 будет безопасной ставкой для файлов. Установка этого к запрещению любого публичного доступа. Я бы реализовал какую-то систему доставки документов в PHP. PHP сможет получить доступ к закрытым файлам и затем отправить их пользователю.

Папки верхнего уровня могут быть установлены на то же самое.

Обновление

Как уже говорили другие, вы можете легко изменить их на 600 без каких-либо проблем. Это более безопасный способ обработки (не позволяет другим пользователям в системе получить доступ к файлам). Он также пропускает «execute», которое в любом случае не требуется для чтения файлов. Моя личная практика - оставлять дополнения, если нет определенной причины не делать этого.

...