Intereting Posts
Получение всех пользовательских почтовых таксономий и экспонирование только их части Различные выходные данные цикла каждые x сообщений в пользовательском типе сообщения Обрезка изображений из верхнего центра с помощью Jetpack Photon WP e-commerce: получение продуктов по SKU Загрузка содержимого динамически и изменение размера события Как загрузить динамическую опцию с помощью ajax Определить использование скриптов PHP в темах? Возможности WordPress: edit_user vs edit_users Как разрешить пользователям создавать группировки сообщений Могу ли я настроить сеанс в пользовательской странице WordPress? Как вставить проем в форму поиска? Как отображать сообщения из определенной категории с помощью функции get_option? Как фильтры можно запускать, когда они никогда не применяются? Настроить определенную RSS-ссылку Обмен пользователями по нескольким сайтам, каждый из которых находится в собственной базе данных

Укрепление wordpress: разрешения файлов wp-content?

Я пишу сценарий, чтобы автоматически проверять разрешения файлов во всех установках wordpress на сервере.

Этот документ http://codex.wordpress.org/Hardening_WordPress не определен в определенный момент:

/ WP-содержание /

Содержимое, поставляемое пользователем: предназначено для записи в учетной записи пользователя и процесса веб-сервера. Внутри / wp-content / вы найдете:

/ WP-содержание / темы /

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

/ WP-содержание / плагины /

Файлы плагинов: все файлы должны быть доступны для записи только вашей учетной записью пользователя.

Является ли эта документация правильной и полной (во всех контекстах) – могу ли я ей доверять?

Если да, то что он говорит:

  • это только сам каталог wp-контента, доступный как для пользователя, так и для веб-сервера, или
  • есть что-нибудь внутри wp-контента, записываемого для обоих, кроме плагинов и факультативных тем?

Я думаю, что он говорит о первом .. но папка uploads не упоминается, и это должно быть доступно для записи веб-сервером, точно?

EDIT: немного перефразировал вопрос

Есть несколько сторон. То, что должно быть идеально , то, что есть практически, и то, что обычно должно быть практически.

В файлах WordPress есть два контекста.

Просто сделайте это с помощью PHP

Самый сложный сценарий с блокировкой – это только перезагрузка. В противном случае основные функции начнут разрушаться.

Однако плагины могут свободно проигрывать с ним и предполагать, что весь wp-content будет доступен для записи.

API файловой системы

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

Это должно быть в состоянии написать все, или (опять же) основная функциональность ломается и по-крупному (обновления и т. Д.).

Итак, подведем итог:

  1. Только закачки должны быть доступны для записи через PHP
  2. Если остальная часть папки содержимого не доступна для записи, может произойти сбой стороннего кода
  3. API-интерфейс файловой системы должен иметь возможность делать все, что угодно, если вы не хотите блокировать его с точки зрения файловой системы только для чтения с точки зрения WP (некоторые настройки работают так)

Что было бы неправильно с этим?

 # you own everything chown -R [user].[user] * .htaccess # others and group may not write anywhere chmod -R og-w * # execute permissions on dirs only chmod -R ax * chmod -R a+X * # webserver co-owns htaccess chgrp www-data .htaccess chmod a-wx .htaccess chmod u+w .htaccess # webserver co-owns wp-content and below chgrp -R www-data wp-content # webserver may write in wp-content itself chmod g+w wp-content # webserver may write in and below uploads chmod -R g+w wp-content/uploads # ------------ # custom exceptions below this # ------------ # webserver may write in htaccess (optional) # chmod g+w .htaccess # webserver may write in and below themes (optional) # chmod -R g+w wp-content/themes 
 chgrp www-data .htaccess chmod a-wx .htaccess 

WordPress должен в какой-то момент писать правила на .htaccess , как правило, с тем, как URL-адрес просматривается и переписывается. www-data group может потребоваться доступ на запись.