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

<p>мне известны требования wp к определенным каталогам и файлам для записи. я также знаю, что слишком свободные разрешения могут открыть дыры в безопасности. наконец, я знаю, что пользователь (который вставляет ваш сервер здесь) работает как в системах linux, может быть фактором.</p><p>помимо безопасности, мне нравится загружать темы и плагины в свой блог и обновлять их при необходимости. надлежащие разрешения, кажется, немного расходятся с этим предпочтением.</p><p>я собрал немного деталей здесь и там, но я хотел бы увидеть более четкий ответ, если таковой будет: какая установка предпочтительнее с намеком на безопасность? какие разрешения должны быть на месте, от какого пользователя должен работать сайт и т.д.</p>

<p>если у вас есть ftp-доступ к вашему серверу, самая безопасная настройка - не иметь каталог тем или плагинов, доступный для записи вашим веб-сервером, а вместо этого иметь файлы обновления wordpress с использованием ftp. когда вы пойдете обновить плагин, wordpress запросит у вас данные ftp.</p><p>метод ftp намного медленнее, чем прямая запись файлов, но он намного более безопасен, так как мошеннический скрипт не сможет изменить ваши файлы.</p>

<p>как отметил @ viper007bond, обновление вашего ядра, плагинов и тем через встроенные механизмы обновления является довольно безопасным с точки зрения прав доступа к файлам, поскольку они могут использовать ваши действительные учетные данные пользователя. для максимальной безопасности вы должны убедиться, что у вас установлено <a href="http://www.php.net/manual/en/book.ssh2.php">ssh2 php расширение</a> . способ установки (если это возможно) может варьироваться от хоста к хосту, поэтому, если его там еще нет, вам может потребоваться обратиться к службе хостинга или выполнить поиск в google.</p><p>многие службы общего хостинга будут использовать <code>suexec</code> в своих настройках apache, чтобы веб-служба работала как фактический пользователь. это устраняет большинство проблем с разрешениями и помогает защитить ваши файлы от других пользователей на сервере. однако в тех случаях, когда apache работает как отдельный пользователь, если вы хотите загружать файлы в wordpress, вы должны открыть разрешения для каталога загрузки.</p><p>в этом случае вы, вероятно, захотите, чтобы ваш каталог <code>wp-content/uploads</code> имел разрешения <code>0713</code> (aka <code>rwx--x-wx</code>). это дает владельцу каталога полные права, его группа может читать файлы <em>, если </em> они знают полный путь, а другие (включая веб-сервер) могут читать файлы, к которым они знают путь и можно создавать/записывать файлы.</p><p>некоторые плагины для кэширования также ожидают наличия каталога <code>wp-content/cache</code> (или аналогичного), в который они могут писать. тот же совет по разрешениям будет применяться к этому.</p><p>наконец, для довольно постоянных ссылок wordpress должен иметь возможность изменять файл <code>.htaccess</code>, если вы не планируете обновить его вручную. в этом случае вы хотели бы <code>0646</code> для режима файла. однако, как только вы определитесь со структурой постоянных ссылок, вам обычно не нужно будет изменять это снова, поэтому вы можете отключить дополнительные разрешения на запись и установить для него значение <code>0644</code>. иногда для обновления плагина или ядра может потребоваться доступ к нему, и вы можете временно включить разрешения на запись для этого, а затем снова отключить его.</p><p>все остальные файлы должны иметь разрешения <code>0644</code>. каталоги должны быть <code>0711</code>, если вы чрезмерно параноидальны, но это может помешать любым плагинам, которые должны получить список файлов из каталога. в этом случае, или если вы не совсем параноик, используйте <code>0755</code>, который позволит другим читать, но не писать.</p><p>в основном это касается, если вы находитесь на виртуальном хостинге. если у вас есть выделенный сервер (включая vps), и нет других пользователей, которые имеют доступ по ssh/ftp, то вы можете немного расслабиться. я не имею в виду, что вы должны просто делать все открыто доступным для записи, но вы, вероятно, можете просто доверять системным настройкам по умолчанию, которые, вероятно, будут иметь права доступа <code>0755</code> для каталогов вместо <code>0711</code>.</p><p>если это вариант, получите сертификат ssl, установленный для сайта, и после того, как вы проверили, что можете получить доступ к своему сайту через <code>https</code>, вы можете принудительно установить ssl для входа и доступа администратора, добавив эти строки в свой файл <code>wp-config.php</code>, непосредственно перед комментарий "остановить редактирование":</p><pre><code>define('force\_ssl\_admin', true); define('force\_ssl\_login', true); </code></pre>