¿Cuál es la configuración ideal para abordar las preocupaciones de seguridad?

8

Soy consciente de los requisitos que WP tiene para que ciertos directorios y archivos se puedan escribir. También soy consciente de que hacer que los permisos sean demasiado flexibles puede abrir agujeros de seguridad. Finalmente, sé que el usuario que (inserte su servidor aquí) como en los sistemas Linux puede ser un factor.

Aparte de la seguridad, me gusta poder descargar temas y complementos en mi blog y actualizarlos cuando sea necesario. Los permisos adecuados parecen estar un poco en desacuerdo con esta preferencia.

He recopilado pequeños detalles aquí y allá, pero me gustaría ver una respuesta más definitiva, si hay una: ¿cuál es la configuración preferida con un guiño a la seguridad? Qué permisos deben existir, a qué usuario debe funcionar el sitio, etc.

Grant Palin
fuente

Respuestas:

10

Si tiene acceso FTP a su servidor, la configuración más segura es que su servidor web no puede escribir sus directorios de temas o complementos y, en cambio, tener archivos de actualización de WordPress usando FTP. Cuando vaya a actualizar un complemento, WordPress le pedirá sus detalles de FTP.

El método FTP es mucho más lento que las escrituras directas de archivos, pero es mucho más seguro ya que un script falso no podrá modificar sus archivos.

Viper007Bond
fuente
55
SFTP es aún mejor
Ashley G
3
FTP es aceptable internamente, pero me pone nervioso por internet; ya que envía contraseñas sobre texto plano. Transfiero a través de SFTP / SSH, me siento más cómodo moviendo archivos a través de un canal seguro. Tampoco autorizo ​​los permisos de escritura para el usuario del servidor web.
JM Becker
8

Como señaló @ Viper007Bond, actualizar su núcleo, complementos y temas a través de los mecanismos de actualización integrados es bastante seguro, en lo que respecta a los permisos de archivos, ya que pueden usar sus credenciales de usuario reales. Para una seguridad máxima, debe asegurarse de tener instalada la extensión PHP SSH2 . El método de instalación (si es posible) puede variar de un host a otro, por lo que si aún no está allí, es posible que deba solicitar el servicio de alojamiento o buscar en Google.

Muchos servicios de alojamiento compartido se utilizarán suexecen su configuración de Apache, de modo que el servicio web se ejecute como el usuario real. Esto elimina la mayoría de los problemas de permisos y ayuda a proteger sus archivos de otros usuarios en el servidor. Sin embargo, en los casos en que Apache se ejecuta como un usuario separado, si desea cargar archivos en WordPress, debe abrir los permisos en el directorio de carga.

En este caso, probablemente desee que su wp-content/uploadsdirectorio tenga 0713permisos, (AKA rwx--x-wx). Esto le da al propietario del directorio permisos completos, su grupo puede leer archivos si conocen la ruta completa, y otros (incluido el servidor web) pueden leer archivos en los que conocen la ruta y pueden crear / escribir archivos.

Algunos complementos de almacenamiento en caché también esperan tener un wp-content/cachedirectorio (o similar) disponible en el que puedan escribir. El mismo consejo de permisos se aplicaría a eso.

Por último, para enlaces permanentes, WordPress debe poder modificar el .htaccessarchivo, a menos que planee actualizarlo manualmente. En este caso, querrás 0646el modo de archivo. Sin embargo, una vez que se haya establecido en su estructura de enlace permanente, normalmente no necesitará cambiar esto nuevamente, por lo que podría desactivar los permisos de escritura adicionales y configurarlo 0644. De vez en cuando, un complemento o actualización de núcleo puede requerir acceso a él, y puede activar temporalmente los permisos de escritura para eso, y luego volver a desactivarlo.

Todos los demás archivos deben tener 0644permisos. Los directorios deberían serlo 0711si eres extra-paranoico, pero eso podría interferir con cualquier complemento que necesite obtener una lista de archivos de un directorio. En ese caso, o si no eres tan paranoico, usa 0755, lo que permitirá a otros leer, pero no escribir.

La mayor parte de esto es principalmente una preocupación si estás en un alojamiento compartido. Si tiene un servidor dedicado (incluido VPS), sin ningún otro usuario que tenga acceso ssh / ftp, puede relajarse un poco más. No me refiero a que debas hacer que todo se pueda escribir abiertamente, pero probablemente solo puedas confiar en los valores predeterminados del sistema, que probablemente serán 0755permisos en los directorios en lugar de hacerlo 0711.

Si es una opción, obtenga un certificado SSL instalado para el sitio, y una vez que haya probado que puede acceder a su sitio a través de https, puede forzar SSL para inicios de sesión de administrador y acceso agregando estas líneas a su wp-config.phparchivo, justo antes de ' Deja de editar el comentario:

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