it-swarm.xyz

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

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

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

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

8
Grant Palin

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

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

10
Viper007Bond

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

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

В этом случае вы, вероятно, захотите, чтобы ваш каталог wp-content/uploads имел разрешения 0713 (AKA 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
Dougal Campbell