Какова идеальная настройка для решения проблем безопасности?


Я знаю о требованиях WP к определенным каталогам и файлам, которые должны быть доступны для записи. Я также знаю, что слишком свободные разрешения могут открыть дыры в системе безопасности. Наконец, я знаю, что пользователь, который (вставьте свой сервер здесь) работает как в системах Linux, может быть фактором.

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

Я собраны небольшие детали здесь и там, но я хотел бы увидеть более точный ответ, если он есть: какая предпочтительная настройка с кивком безопасности? Какие разрешения должны быть на месте, от имени какого пользователя должен запускаться сайт и т.д.

 8
Author: Grant Palin, 2010-08-11

2 answers

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

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

 10
Author: Viper007Bond, 2010-08-11 21:29:33

Как отметил @viper007bond, обновление вашего ядра, плагинов и тем с помощью встроенных механизмов обновления довольно безопасно, насколько позволяют права доступа к файлам, потому что они могут использовать ваши фактические учетные данные пользователя. Для максимальной безопасности вы хотите убедиться, что у вас установлено расширение SSH2 PHP. Способ установки (если это возможно) может варьироваться от хоста к хосту, поэтому, если его еще нет, вам может потребоваться обратиться в службу хостинга или немного погуглить.

Многие службы общего хостинга будут использовать suexec в своей настройке Apache, чтобы веб-служба работала от имени фактического пользователя. Это устраняет большинство проблем с разрешениями и помогает защитить ваши файлы от других пользователей на сервере. Однако в тех случаях, когда Apache запускается как отдельный пользователь, если вы хотите загружать файлы в WordPress, вам необходимо открыть разрешения для каталога загрузки.

В этом случае вы, вероятно, хотите, чтобы ваш каталог wp-content/uploads имел разрешения 0713 (ОН же rwx--x-wx). Это дает полные разрешения владельца каталога, их группа может читать файлы , если они знают полный путь, а другие (включая веб-сервер) могут читать файлы, к которым они знают путь, и могут создавать/записывать файлы.

Некоторые плагины кэширования также ожидают наличия каталога wp-content/cache (или аналогичного), в который они могут писать. К этому относится тот же совет по разрешениям.

Наконец, для красивых постоянных ссылок WordPress должен иметь возможность изменять файл .htaccess, если вы не планируете обновите его вручную. В этом случае вам понадобится 0646 для режима файла. Однако, как только вы определитесь со структурой постоянных ссылок, вам обычно не нужно будет менять ее снова, поэтому вы можете отключить дополнительные разрешения на запись и установить для нее значение 0644. Иногда для обновления плагина или ядра может потребоваться доступ к нему, и для этого вы можете временно включить разрешения на запись, а затем снова отключить его.

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

Большая часть этого в основном вызывает беспокойство, если вы находитесь на общем хостинге. Если у вас есть выделенный сервер (включая VPS), на котором нет других пользователей, имеющих доступ по ssh/ftp, вы можете немного расслабиться. Я не имею в виду, что вы должны просто делать все открыто доступно для записи, но вы, вероятно, можете просто доверять системным настройкам по умолчанию, которые, вероятно, будут разрешениями 0755 для каталогов вместо 0711.

Если это возможно, установите SSL-сертификат для сайта, и как только вы проверите, что можете получить доступ к своему сайту через https, вы можете принудительно использовать SSL для входа в систему администратора и доступа, добавив эти строки в свой файл wp-config.php, непосредственно перед комментарием "Прекратить редактирование":

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
 8
Author: Dougal Campbell, 2011-03-02 18:09:19