Как поставить_file_contents с php без ошибки пользователя?

Я пытаюсь заменить содержимое файла в папке, отличной от моей папки с файлами php, и получаю сообщение об ошибке: «Не удалось открыть поток, разрешение отклонено»

Я использую функцию put_file_contents для изменения содержимого файла. Я искал в Интернете решение этой проблемы и обнаружил, что каталог файлов может быть записан только владельцем/пользователем. Я проверил свойства каталога в filezilla (ftp) и обнаружил, что каталог недоступен для записи ни группе, ни общедоступному.

В filezilla я попытался разрешить общедоступную запись в каталог, и файл php смог записать в файл папки.

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

Поскольку только файл php может изменить содержимое на веб-сервере, почему для веб-сервера предусмотрена общедоступная опция? Если это для загрузки, то это также означает, что страница загрузки находится на сервере! Я не могу получить доступ к терминалу на ftp или cpanel, поэтому я не могу выполнить chmod и т.д...

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


person mk117    schedule 27.08.2016    source источник
comment
Если ваш сайт находится на виртуальном хостинге, публичный доступ может создать для вас серьезные проблемы с безопасностью.   -  person Ahmad    schedule 27.08.2016
comment
Есть причина, по которой вам не разрешено это делать. Вы не можете решить это в PHP, вам нужно решить проблему с разрешениями.   -  person Peter VARGA    schedule 27.08.2016
comment
есть ли способ удалить файл и записать его снова с разрешениями на файл php?   -  person mk117    schedule 27.08.2016
comment
Если я заменю файл по ftp новым файлом, будут ли разрешения для этого конкретного файла (файлов) переписываться через php?   -  person mk117    schedule 28.08.2016


Ответы (1)


Сервер — это все еще компьютер, как и любой из них. Это означает, что вы можете создать несколько пользователей, и что может случиться многое.

Ваш сервер может не обязательно оставаться только веб-сервером. Очевидно, что это также FTP-сервер, и вы, вероятно, также можете получить к нему доступ с помощью ssh. В будущем вы, возможно, захотите использовать его для другой цели.

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

По этой причине в некоторых системах программное обеспечение, отвечающее за обслуживание http-запросов (обычно Apache), запускается как конкретный пользователь httpd.

Группы пользователей - это именно то, что он говорит: определенные группы пользователей. Вы можете легко прочитать об этом в Интернете.

person Vic Seedoubleyew    schedule 28.08.2016
comment
Привет Вик! этот ответ решает проблему с правами доступа к файлу ? Кроме того, если я заменю файл после запуска скрипта (в ответ), будут ли права доступа к файлу по-прежнему предоставлены скрипту php? - person mk117; 28.08.2016