Qual é a configuração ideal para solucionar problemas de segurança?

8

Estou ciente dos requisitos que o WP possui para que certos diretórios e arquivos sejam graváveis. Também sei que tornar as permissões muito frouxas pode abrir brechas na segurança. Finalmente, eu sei que o usuário que (insira seu servidor aqui) roda como nos sistemas Linux pode ser um fator.

Além da segurança, eu gosto de poder baixar temas e plugins para o meu blog e atualizá-los quando necessário. As permissões apropriadas parecem estar um pouco em desacordo com essa preferência.

Reuni pequenos detalhes aqui e ali, mas gostaria de ver uma resposta mais definitiva, se houver uma: qual é a configuração preferida com um aceno de segurança? Quais permissões devem estar em vigor, qual usuário o site deve ser executado etc.

Grant Palin
fonte
Tags

Respostas:

10

Se você tiver acesso FTP ao seu servidor, a configuração mais segura é não ter o diretório de temas ou plugins gravável pelo servidor da web e, em vez disso, ter arquivos de atualização do WordPress usando FTP. Quando você atualizar um plug-in, o WordPress solicitará seus detalhes de FTP.

O método FTP é muito mais lento que a gravação direta de arquivos, mas é muito mais seguro, pois um script não autorizado não poderá modificar seus arquivos.

Viper007Bond
fonte
5
O SFTP é ainda melhor #
Ashley G
3
O FTP é aceitável internamente, mas me deixa nervoso pela Internet; pois envia senhas sobre texto sem formatação. Eu transfiro via SFTP / SSH, me sinto mais confortável movendo arquivos por um canal seguro. Também não permito permissões de gravação para o usuário do servidor da web.
JM Becker
8

Como o @ Viper007Bond observou, a atualização de seu núcleo, plug-ins e temas por meio dos mecanismos de atualização internos é bastante segura, no que diz respeito às permissões de arquivo, porque eles podem usar suas credenciais de usuário reais. Para segurança máxima, você quer ter a extensão PHP SSH2 instalada. O método de instalação (se possível) pode variar de host para host; portanto, se ainda não estiver lá, você poderá solicitar o serviço de hospedagem ou pesquisar no Google.

Muitos serviços de hospedagem compartilhada serão usados suexecna 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 fazer upload de arquivos para o WordPress, é necessário abrir permissões no diretório de upload.

Nesse caso, você provavelmente deseja que seu wp-content/uploadsdiretório tenha 0713permissões (AKA rwx--x-wx). Isso fornece ao proprietário do diretório permissões completas, seu grupo pode ler arquivos se souber o caminho completo e outros (incluindo o servidor da Web) podem ler arquivos para os quais conhecem o caminho e criar / gravar arquivos.

Alguns plug-ins de cache também esperam ter um wp-content/cachediretório (ou similar) disponível no qual possam gravar. O mesmo conselho de permissões se aplicaria a isso.

Por fim, para permalinks bastante interessantes, o WordPress precisa poder modificar o .htaccessarquivo, a menos que você planeje atualizá-lo manualmente. Nesse caso, você deseja 0646o modo de arquivo. No entanto, depois de definir sua estrutura de link permanente, normalmente não será necessário alterar isso novamente, para que você possa desativar as permissões extras de gravação e configurá-lo como 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 novamente para isso e desativá-lo novamente.

Todos os outros arquivos devem ter 0644permissões. Os diretórios devem ser 0711se você for 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 for tão paranóico, use 0755, o 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 VPS), sem outros usuários que tenham acesso ssh / ftp, poderá relaxar um pouco mais. Não quero dizer que você deve tornar tudo abertamente gravável, mas provavelmente pode confiar apenas nos padrões do sistema, que provavelmente serão 0755permissões nos diretórios em vez de 0711.

Se for uma opção, instale um certificado SSL para o site e, depois de testar o acesso ao site https, você pode forçar o SSL para logins e acesso de administrador adicionando essas linhas ao seu wp-config.phparquivo, imediatamente antes do ' Parar de editar o comentário:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
Dougal Campbell
fonte