¿Cuál es la configuración ideal para abordar los problemas de seguridad?

8

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

Aparte de la seguridad, me gusta poder descargar temas y complementos a 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 la hay: ¿cuál es la configuración preferida con un guiño a la seguridad? Qué permisos deben estar en su lugar, qué usuario debe ejecutar el sitio, etc.

    
pregunta Grant Palin 11.08.2010 - 23:24

2 respuestas

10

Si tiene acceso de FTP a su servidor, la configuración más segura es que su servidor web no pueda escribir sus directorios de temas o complementos y, en su lugar, tener archivos de actualización de WordPress utilizando 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 malicioso no podrá modificar tus archivos.

    
respondido por el Viper007Bond 11.08.2010 - 23:29
8

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

Muchos servicios de alojamiento compartido usarán suexec en 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 permisos en el directorio de carga.

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

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

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

Todos los demás archivos deben tener permisos 0644 . Los directorios deberían ser 0711 si 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 , que permitirá a otros leer, pero no escribir.

La mayoría de esto es principalmente una preocupación si está 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 quiero decir que solo debe hacer que todo se pueda escribir abiertamente, pero probablemente solo puede confiar en los valores predeterminados del sistema, que probablemente sean permisos 0755 en directorios en lugar de 0711 .

Si es una opción, instale un certificado SSL para el sitio, y una vez que haya probado que puede acceder a su sitio a través de https , puede forzar SSL para los inicios de sesión de administrador y el acceso agregando estas líneas a su Archivo wp-config.php , justo antes del comentario 'Detener edición':

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
    
respondido por el Dougal Campbell 02.03.2011 - 19:09

Lea otras preguntas en las etiquetas