Estou ciente dos requisitos que o WP tem para certos diretórios e arquivos serem graváveis. Também estou ciente de que fazer permissões muito soltas pode abrir brechas de segurança. Por fim, sei que o usuário que (insira seu servidor aqui) é executado como nos sistemas Linux pode ser um fator.
Deixando de lado a segurança, gosto de baixar temas e plugins no meu blog e atualizá-los quando necessário. Permissões adequadas parecem estar um pouco em desacordo com essa preferência.
Eu colecionei pequenos detalhes aqui e ali, mas eu gostaria de ver uma resposta mais definitiva, se houver uma: qual é a configuração preferida com um aceno à segurança? Quais permissões devem estar no lugar, qual usuário o site deve executar, etc.
Se você tiver acesso FTP ao seu servidor, a configuração mais segura é não ter seus temas ou diretórios de plug-ins graváveis pelo seu servidor da Web e, em vez disso, ter o WordPress atualizar arquivos usando o FTP. Quando você vai para atualizar um plugin, o WordPress solicitará seus detalhes de FTP.
O método FTP é muito mais lento do que as gravações diretas de arquivos, mas é muito mais seguro, já que um script não é capaz de modificar seus arquivos.
Como o @ Viper007Bond observou, atualizar seu núcleo, plug-ins e temas através dos mecanismos de atualização integrados é bastante seguro, na medida em que as permissões de arquivos vão, porque elas podem usar suas credenciais de usuário reais. Para máxima segurança, você quer ter certeza que você tem a extensão SSH2 PHP instalada. O método de instalação (se possível) pode variar de Host para Host, por isso, se ainda não estiver lá, talvez seja necessário solicitar o serviço de hospedagem ou fazer algumas Pesquisas.
Muitos serviços de hospedagem compartilhada usarão suexec
em sua configuração do Apache, para que o serviço da Web seja executado como o usuário real. Isso elimina a maioria dos problemas de permissão e ajuda a proteger seus arquivos de outros usuários no servidor. No entanto, nos casos em que o Apache é executado como um usuário separado, se você deseja carregar arquivos no WordPress, é necessário abrir as permissões no diretório de upload.
Neste caso, você provavelmente quer que seu diretório wp-content/uploads
tenha permissões 0713
, (AKA rwx--x-wx
). Isto dá ao proprietário do diretório permissões completas, seu grupo pode ler arquivos se eles conhecem o caminho completo, e outros (incluindo o servidor web) podem ler arquivos que conhecem o caminho e pode criar/gravar arquivos.
Alguns plug-ins de armazenamento em cache também esperam ter disponível um diretório wp-content/cache
(ou similar) para o qual podem gravar. O mesmo conselho de permissões se aplicaria a isso.
Por último, para permalinks muito bonitos, o WordPress precisa modificar o arquivo .htaccess
, a menos que você planeje atualizá-lo manualmente. Nesse caso, você desejaria 0646
para o modo de arquivo. No entanto, uma vez que você tenha decidido sobre sua estrutura de permalink, você normalmente não precisará mudar isso novamente, então você pode desativar as permissões extras de gravação e configurá-la para 0644
. Ocasionalmente, um plug-in ou atualização principal pode exigir acesso a ele e você pode ativar temporariamente as permissões de gravação para isso e desativá-lo novamente.
Todos os outros arquivos devem ter permissões 0644
. Os diretórios devem ser 0711
se você for extra-paranóico, mas isso pode interferir em qualquer plug-in que precise obter uma lista de arquivos de um diretório. Nesse caso, ou se você não estiver tão paranóico, use 0755
, que permitirá que outras pessoas leiam, mas não escrevam.
A maior parte disso é principalmente uma preocupação se você estiver em hospedagem compartilhada. Se você tiver um servidor dedicado (incluindo o VPS), sem outros usuários que tenham acesso ssh/ftp, você poderá relaxar um pouco mais. Não quero dizer que você deve apenas tornar tudo abertamente gravável, mas provavelmente você pode confiar apenas nos padrões do sistema, que provavelmente serão 0755
permissões nos diretórios em vez de 0711
.
Se for uma opção, obtenha um certificado SSL instalado para o site e, depois de testar se você pode acessar seu site por meio de https
, você poderá forçar o SSL para logins e acesso administrativo adicionando essas linhas ao seu arquivo wp-config.php
, pouco antes o comentário "Parar de editar":
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);