Endurecimento de wordpress: permissions de arquivo de conteúdo wp?

Estou escrevendo um script para verificar automaticamente as permissions de arquivos em todas as instalações de wordpress em um servidor.

Este documento http://codex.wordpress.org/Hardening_WordPress não está claro em um determinado ponto:

/ wp-content /

Conteúdo fornecido pelo usuário: destinado a ser gravado pela sua conta de usuário e pelo processo do servidor web. Dentro / wp-content / você encontrará:

/ wp-content / themes /

Arquivos de tema. Se você quiser usar o editor de tema incorporado, todos os arquivos precisam ser gravados pelo processo do servidor web. Se você não deseja usar o editor de temas incorporado, todos os arquivos podem ser gravados somente pela sua conta de usuário.

/ wp-content / plugins /

Arquivos de plugins: todos os arquivos devem ser gravados somente pela sua conta de usuário.

A documentação acima é correta e completa (em todos os contextos) – posso confiar nisso?

Se sim, o que isso diz:

  • é apenas o conteúdo do diretório wp que pode ser gravado para usuário e servidor web, ou
  • é qualquer coisa dentro de conteúdo wp gravável para ambos, exceto os plugins e, opcionalmente, temas?

Eu acho que diz o primeiro … mas a pasta de carregamentos não é mencionada, e isso deve ser gravável pelo servidor web, com certeza?

EDITAR: reformulou ligeiramente a questão

Solutions Collecting From Web of "Endurecimento de wordpress: permissions de arquivo de conteúdo wp?"

Há vários lados para isso. O que deve ser ideal , o que é praticamente e o que geralmente deve ser praticamente.

Existem dois contextos para os arquivos de escrita no WordPress.

Basta fazê-lo com PHP

O cenário mais difícil do bloqueado aqui é que apenas os uploads são graváveis. Caso contrário, a funcionalidade principal começará a quebrar.

No entanto, os plugins podem ser soltos e assumir que todo o wp-content do wp-content pode ser gravado.

API do sistema de arquivos

Esta é uma forma adequada de escrever, mas também é difícil para o usuário final, pois pede credenciais de FTP se é isso que é necessário.

Isso precisa ser capaz de escrever tudo, ou (novamente) a funcionalidade principal quebra e em formas maiores (atualizações, etc.).

Então, para resumir:

  1. Apenas os uploads devem ser gravados via PHP
  2. Se o resto da pasta de conteúdo não for gravável, o código de terceiros pode falhar
  3. A API do Sistema de Arquivos deve ser capaz de fazer o que for, a menos que você queira bloqueá-lo difícil até o ponto do sistema de arquivos de somente leitura da perspectiva do WP (algumas configurações funcionam assim)

O que seria errado com isso?

 # you own everything chown -R [user].[user] * .htaccess # others and group may not write anywhere chmod -R og-w * # execute permissions on dirs only chmod -R ax * chmod -R a+X * # webserver co-owns htaccess chgrp www-data .htaccess chmod a-wx .htaccess chmod u+w .htaccess # webserver co-owns wp-content and below chgrp -R www-data wp-content # webserver may write in wp-content itself chmod g+w wp-content # webserver may write in and below uploads chmod -R g+w wp-content/uploads # ------------ # custom exceptions below this # ------------ # webserver may write in htaccess (optional) # chmod g+w .htaccess # webserver may write in and below themes (optional) # chmod -R g+w wp-content/themes 
 chgrp www-data .htaccess chmod a-wx .htaccess 

O WordPress precisa escrever regras para .htaccess em algum momento, geralmente para ver como uma URL é vista e reescrita. www-data grupo de www-data pode precisar de access de gravação.