x

Capítulos principales

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. LimeSurvey Cloud - Guía de inicio rápido
  3. Instalación - LimeSurvey CE
  4. Cómo diseñar una buena encuesta (guía)
  5. Empezando
  6. Administración de LimeSurvey
  7. Encuestas - introducción
  8. Configuración de la encuesta
  9. Menú de encuesta
  10. Estructura de la encuesta
  11. Preguntas - introducción
  12. Grupos de preguntas: introducción
  13. Encuestas - gestión
  14. Opciones de la barra de herramientas de encuesta
  15. Encuesta multilingüe
  16. Motor ExpressionScript: guía de inicio rápido
  17. Funciones avanzadas y no categorizadas
  18. FAQ - General
  19. Solución de problemas
  20. Soluciones alternativas
  21. Licencia
  22. Registro de cambios de versión
  23. Complementos - avanzado
 Actions

Consejos de seguridad para la instalación

From LimeSurvey Manual

Es posible que esta página se haya traducido automáticamente y contenga errores. Ver el original en inglés · Mejorar esta traducción
This page is a translated version of the page Installation security hints and the translation is 100% complete.

Generales

Tenga en cuenta que nos tomamos muy en serio los problemas de seguridad y reaccionamos rápidamente. Por lo tanto, si conoce algún problema de seguridad dentro de LimeSurvey, háganoslo saber abriendo un informe de error en nuestro rastreador de errores (marque el error con la gravedad o categoría 'seguridad').

Para obtener más detalles, consulte nuestra política de seguridad para informar sobre problemas de seguridad o vulnerabilidades.

Restricción del servidor web

LimeSurvey incluye archivos .htaccess que bloquean el acceso web a los archivos y directorios que solo se utilizan en el servidor. Si usa Apache, asegúrese de que estos archivos estén permitidos con AllowOverride All y de que mod_rewrite esté habilitado.

Otros servidores web, como nginx o IIS, ignoran los archivos .htaccess, y Apache también lo hace con AllowOverride None. En ese caso, deniegue el acceso web a lo siguiente en la configuración de su servidor web:

  • los directorios application, vendor, docs, locale, modules y tmp/runtime
  • los directorios conf, core, doc, integration, lang, lib y tpl en assets/packages/kcfinder
  • los archivos setdebug.php y open-api-gen.php
  • los archivos de desarrollo en el directorio raíz de LimeSurvey: composer.json, composer.lock, package.json, yarn.lock, gulpfile.js, phpunit.xml, psalm*.xml, phpci.yml, phpcs.ruleset.xml, publiccode.yml, manifest.yml, CONTRIBUTING.md, README.md y SECURITY.md
  • los archivos y directorios ocultos (su nombre empieza por un punto), excepto .well-known
  • los archivos de registro (*.log)
  • los archivos subidos por los participantes de la encuesta: los archivos que empiezan por fu_ en upload/surveys y sus subdirectorios

Asegúrese también de que los scripts del directorio upload nunca puedan ejecutarse, por ejemplo scripts de PHP, Perl, Python o shell.

El paquete de LimeSurvey también contiene documentación, ejemplos y pruebas de las bibliotecas incluidas, por ejemplo en los directorios vendor y docs. No borre estos archivos: la siguiente actualización los restaurará. En su lugar, deniegue el acceso web a los directorios, como se describe más arriba.

Puede encontrar un ejemplo para nginx en la página Configuración de ejemplo de LimeSurvey con nginx.

Permisos de archivos de Linux

Si está utilizando un servidor Linux, es necesario configurar los permisos de archivos correspondientes para proteger su instalación de LimeSurey.

Datos básicos sobre los permisos de archivos de Linux/*nix

Un sistema operativo Linux/*nix es multiusuario. Esto significa que, además de su cuenta personal, pueden existir otras cuentas de usuario en el sistema y usted debe tener cuidado con los permisos que otorga a otros usuarios.

Sugerencia: configurar los permisos de los archivos es especialmente importante para proteger los archivos de configuración que contienen datos críticos, como contraseñas.

Tenga en cuenta que a la cuenta 'root' siempre se le otorgará permiso para acceder a sus archivos (sin importar qué permisos de archivo establezca), ya que es el usuario superadministrador.

El servidor web (que ejecuta LimeSurvey) también se ejecuta bajo una identidad determinada (usuario). En Linux, suele ser el usuario 'www', 'www-data' (en Debian/Ubuntu), 'apache' o 'nadie'. Sin embargo, algunas empresas de alojamiento utilizan sistemas (como suexec) que permiten ejecutar scripts de LimeSurvey con su usuario personal. Por supuesto, el usuario del servidor web debe tener derecho a leer los archivos de LimeSurvey. Sin embargo, el usuario del servidor web sólo debe poder escribir en un pequeño subconjunto de subdirectorios de LimeSurvey.

Sugerencia: es muy valioso revocar el permiso de escritura del usuario del servidor web en estos subdirectorios de LimeSurvey que no lo requieren. De hecho, incluso si se descubriera una vulnerabilidad de LimeSurvey, los archivos principales seguirán estando protegidos contra modificaciones ilícitas gracias a los permisos del sistema de archivos.

Configurar permisos de archivos en un sistema Linux autoadministrado

Si está administrando su servidor web y la configuración del sistema operativo (es el propietario del servidor físico o está alquilando un servidor virtual en el que tiene acceso raíz), puede considerar las siguientes recomendaciones.

Primero puede configurar el propietario y el grupo de sus archivos de LimeSurvey para facilitar la configuración de los permisos de los archivos. Una posible estrategia es configurar el propietario de los archivos LimeSurvey con su nombre de usuario personal y el grupo de archivos LimeSurvey con el grupo del servidor web. Normalmente, este grupo de servidores web sólo contiene la cuenta del servidor web (y posiblemente otra cuenta de webmaster). Por ejemplo, si su nombre de usuario es 'micuenta' y el usuario del servidor web es 'apache' en el grupo 'apache', entonces, desde un acceso de shell, puede usar el siguiente comando: $ chown -R myaccount:apache limesurvey/ . Posteriormente, configure los permisos de archivos y subdirectorios.

Para que el script funcione correctamente, se necesita acceso de escritura a algunos directorios:

  • El directorio /limesurvey/application/config requiere Leer y escribir para guardar los ajustes de configuración de la aplicación
  • El /limesurvey/ ¡El directorio tmp y sus subdirectorios se utilizan para importaciones/cargas y deben configurarse en Leer y escribir para su servidor web
  • El directorio/cargar y todos sus subdirectorios también deben tener configurado Leer & Permisos de escritura para permitir la carga de imágenes y archivos multimedia. ¡N!* Todos los demás directorios y archivos se pueden configurar en Solo lectura.

Configurar permisos de archivos en un servidor web alojado

Dada la dificultad de un procedimiento estándar para proteger una aplicación web en un entorno alojado, es bastante difícil porque los entornos alojados difieren en muchos aspectos.

En el caso del servidor administrado, el servidor necesita acceso de escritura a algunos directorios para que el script funcione correctamente:

  • El directorio /limesurvey/tmp se usa para importaciones/cargas y debe configurarse en Leer y escribir' ' para su servidor web
  • El directorio/carga y todos sus subdirectorios también deben tener Lectura y escritura para su servidor web para permitir la carga de imágenes y archivos multimedia.N!* Los otros directorios y Los archivos deben configurarse en "Solo lectura".
Sugerencia:
  • Dependiendo de la configuración de su servidor web, tendrá que cambiar los derechos de las carpetas de escritura a 755 o 777 para que se puedan escribir en la web. servidor. Pruebe primero con 755, si no funciona, 'actualice' a 777
  • También puede intentar eliminar el acceso de lectura de otros usuarios a config.php estableciendo los permisos de este archivo en 750; si no funciona, 'actualice' ' a 755

Permisos de archivos de Windows

Si está utilizando un servidor Windows, debe asegurarse de que la carpeta de administración permita al propietario del proceso del servidor web escribir archivos en este directorio. El resto de los archivos se pueden configurar como de solo lectura y ejecutarse.

Otros problemas de seguridad

Las siguientes son sólo recomendaciones. LimeSurvey en general es muy seguro sin estas medidas adicionales. Sin embargo, si recopila datos extremadamente confidenciales, un poco de seguridad adicional puede ayudar:

Uso de SSL

Generalmente recomendamos el uso de SSL para datos confidenciales de encuestas. Por lo general, habilita SSL configurando su servidor web correctamente y utilizando un certificado SSQL. Si ha habilitado SSL, debe aplicar SSL todo el tiempo desde la configuración global de LimeSurvey. Además, solo puede configurar el uso de cookies 'seguras' editando la opción respectiva en config.php.

El acceso al archivo config.php

Template:Alerta

El archivo /application/config/config.php contiene un nombre de usuario y una contraseña para su servidor de base de datos. Esto plantea ciertos problemas de seguridad, especialmente si utiliza un inicio de sesión que tiene acceso administrativo de alto nivel a su base de datos. En caso de algún error al devolver el contenido de este archivo PHP al navegador de un usuario, la contraseña de su base de datos y otros detalles podrían verse comprometidos (sin embargo, este es un escenario muy poco probable). La mejor manera de minimizar el riesgo es configurar un inicio de sesión específico que tenga derechos específicos solo para su base de datos LimeSurvey.

Otra forma de proteger esta información puede ser colocar la información del archivo /application/config/config.php en un directorio que no sea web, es decir, para los usuarios de Apache, este es el directorio que se encuentra encima de la carpeta htdocs (también conocida como public_html o www). . Básicamente, usará config.php, pero tendrá una línea, una línea que incluye el archivo con información de configuración REAL (por ejemplo:<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Elimine toda la información de configuración real de /application/config/config.php y péguela en el otro archivo (configreal.php) que se menciona en el archivo /application/config/config.php. Este otro archivo debe estar ubicado en un directorio que no sea web. Entonces, /application/config/config.php no contendrá contraseñas de bases de datos, etc., solo el nombre del archivo que SÍ contiene la información de la base de datos.

Esto evita tener que cambiar todos los demás archivos que incluyen /application/config/config.php, ya que config.php 'los redirige' hacia el archivo de configuración que se encuentra en un directorio no web, el cual incluye toda la información de configuración real.

Además, no utilice "admin" ni "administrator" como usuario predeterminado. Vaya a su base de datos MySQL (o a aquella en la que instaló LimeSurvey) y cambie el nombre de usuario predeterminado "admin" por el que prefiera (por ejemplo, "admin_xyz"). Ahora será mucho más difícil adivinar el nuevo nombre de usuario del administrador. Recuerde que esta es una de las dos variables que los intrusos pueden utilizar para obtener acceso. La contraseña de administrador es la otra variable. Por eso, elija ambas con extrema precaución.

Política de seguridad de contenido (CSP)

DESCARGO DE RESPONSABILIDAD: El CSP proporcionado aquí es solo un ejemplo y no debe usarse palabra por palabra. Está pensado como un punto de partida y DEBES adaptarlo a tus necesidades y probarlo a fondo. <IfModule mod_headers.c> El encabezado siempre establece Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none '; formulario-acción 'yo'; ancestros del marco 'yo'; solicitudes-inseguras-de-actualización" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i "</IfModule>