Какие разрешения для файлов я должен установить для загружаемых файлов - PullRequest
2 голосов
/ 14 ноября 2008

У меня есть PHP-скрипт, который обрабатывает загрузку файлов. Сценарий пытается упорядочить загруженные файлы и может создавать новые папки для перемещения файлов, если это необходимо. Эти файлы будут находиться в корневом каталоге www (т. Е. Веб-браузер сможет получить к ним доступ).

У меня вопрос: какие разрешения я должен установить для создаваемых папок и для файлов, перемещаемых в них (используя mkdir() и move_uploaded_file())?

Ответы [ 2 ]

4 голосов
/ 14 ноября 2008

Вашему веб-серверу необходимо разрешение на чтение и запись в этих папках, разрешение на выполнение должно быть отменено (при условии UNIX-подобных систем). Если нет, пользователь может загрузить сценарий и запустить его, отправив для него HTTP-запрос.

Но ИМО вся концепция представляет собой потенциальную дыру в безопасности. Лучше хранить файлы в папке вне корня веб-сервера, так что прямой доступ невозможен. В вашем веб-приложении может быть страница загрузки PHP, которая сканирует каталог загрузки и отображает список ссылок для загрузки. Эти ссылки на скачивание ведут к другому сценарию, который считывает файлы из вашего хранилища и отправляет их пользователю.

Да, это больше работы. Но сценарий очень распространен, поэтому вы сможете легко найти исходный код с примерами реализации. И это намного меньше работы, чем взломанный сервер ...

0 голосов
/ 18 ноября 2008

, чтобы ответить на него конкретно, 766 (без прав на выполнение) будет самым свободным, что вы захотите использовать С другой стороны, 700 не позволит никому, кроме веб-пользователя, связываться с файлом. Но на самом деле все зависит от того, что вы делали с файлами, которые будут определять лучший результат.

...