Actions

Installation security hints/fr: Difference between revisions

From LimeSurvey Manual

(Created page with "==Autres problèmes de sécurité==")
(Created page with "===Utilisation de SSL=== Nous recommandons généralement l'utilisation de SSL pour les données d'enquête sensibles. Vous activez généralement SSL en configurant correctem...")
Line 81: Line 81:
Ce qui suit ne sont que des recommandations. LimeSurvey en général est très sûr sans ces mesures supplémentaires. Si vous collectez toutefois des données extrêmement sensibles, un peu de sécurité supplémentaire peut vous aider :
Ce qui suit ne sont que des recommandations. LimeSurvey en général est très sûr sans ces mesures supplémentaires. Si vous collectez toutefois des données extrêmement sensibles, un peu de sécurité supplémentaire peut vous aider :


===SSL usage===
===Utilisation de SSL===
We generally recommend the usage of SSL for sensitive survey data. You usually enable SSL by configuring your web server correctly and using a SSQL certificate. If you have enabled SSL, you should enforce SSL all the time from the [[Global_settings|global settings]] of LimeSurvey. Additionally, you could only set to use 'secure' cookies by editing the [[Optional_settings|respective option]] in config.php.
Nous recommandons généralement l'utilisation de SSL pour les données d'enquête sensibles. Vous activez généralement SSL en configurant correctement votre serveur Web et en utilisant un certificat SSQL. Si vous avez activé SSL, vous devez appliquer SSL à tout moment à partir des [[Global_settings|global settings]] de LimeSurvey. De plus, vous ne pouvez configurer l'utilisation de cookies « sécurisés » qu'en modifiant les [[Optional_settings|option respective]] dans config.php.


=== The access to the config.php file ===
=== L'accès au fichier config.php ===


{{Alert| You must update application/config/'''config.php''' only after the first installation is done and it works.}}  
{{Alert| You must update application/config/'''config.php''' only after the first installation is done and it works.}}  

Revision as of 09:04, 2 October 2023

Généralités

LimeSurvey s'appuie sur sa propre sécurité, activée par défaut. Les auteurs de ce logiciel n'assument aucune responsabilité et ne font aucune réclamation quant à l'adéquation ou au niveau de sécurité de ce logiciel. Cependant, nous prenons les questions de sécurité très au sérieux et réagissons rapidement. Par conséquent, si vous avez connaissance de problèmes de sécurité au sein de LimeSurvey, veuillez nous en informer soit en nous envoyant un e-mail à info@limesurvey.org, soit en ouvrant un rapport de bug dans notre [http:// bug tracker bugs.limesurvey.org] (veuillez le marquer comme privé).

Restriction du serveur Web

Si vous utilisez Apache, LimeSurvey inclut différents fichiers htaccess à des fins de restriction. vérifiez que vous autorisez le htaccess inclus avec AllowOverride .

Avec un autre serveur web ou si vous souhaitez utiliser AllowOverride None : vous devez

  • (option) désactiver l'accès à tous les fichiers de l'application, protégés, framework et thèmes/*/views
  • désactiver l'accès au téléchargement de fichiers par l'utilisateur /upload/surveys/.*/fu_[a-z0-9]
  • (option) désactiver l'accès au fichier exécutable dans le répertoire de téléchargement

Vous pouvez trouver un exemple pour nginx sur notre General Faq

Permissions de fichiers sous Linux

Si vous utilisez un serveur Linux, il est nécessaire de définir les autorisations de fichiers en conséquence pour sécuriser votre installation de LimeSurey.

Faits de base sur les autorisations de fichiers Linux/*nix

Un système d'exploitation Linux/*nix est multi-utilisateur. Cela signifie qu'outre votre compte personnel, d'autres comptes d'utilisateurs peuvent exister sur le système et vous devez faire attention aux autorisations que vous accordez aux autres utilisateurs.

Astuce : la définition des autorisations de fichiers est particulièrement importante afin de sécuriser les fichiers de configuration contenant des données critiques telles que les mots de passe.

Gardez à l'esprit que le compte 'root' aura toujours l'autorisation d'accéder à vos fichiers (quelles que soient les autorisations de fichiers que vous définissez) car il s'agit de l'utilisateur super-administrateur.

Le serveur Web (qui exécute LimeSurvey) fonctionne également sous une identité donnée (utilisateur). Sous Linux, il s'agit généralement de l'utilisateur « www », « www-data » (sur Debian/Ubuntu), « apache » ou « personne ». Cependant, certaines sociétés d'hébergement utilisent des systèmes (tels que suexec) qui permettent d'exécuter des scripts LimeSurvey avec votre utilisateur personnel. Bien entendu, l'utilisateur du serveur Web doit avoir le droit de lire les fichiers LimeSurvey. Cependant, seul un petit sous-ensemble de sous-répertoires LimeSurvey doit être accessible en écriture par l'utilisateur du serveur Web.

Astuce : il est très utile de révoquer l'autorisation d'écriture de l'utilisateur du serveur Web sur ces sous-répertoires LimeSurvey qui n'en ont pas besoin. En effet, même si une vulnérabilité LimeSurvey était découverte, les fichiers principaux seront toujours protégés d'une modification illicite grâce aux permissions du système de fichiers.

Définition des autorisations de fichiers sur un système Linux autogéré

Si vous gérez la configuration de votre serveur Web et de votre système d'exploitation (vous êtes propriétaire du serveur physique ou louez un serveur virtuel sur lequel vous disposez d'un accès root), vous pouvez prendre en compte les recommandations suivantes ci-dessous.

Vous pouvez d'abord définir le propriétaire et le groupe de vos fichiers LimeSurvey afin de faciliter la configuration des autorisations de fichiers. Une stratégie possible consiste à définir le propriétaire des fichiers LimeSurvey sur votre nom d'utilisateur personnel et le groupe de fichiers LimeSurvey sur le groupe du serveur Web. Habituellement, ce groupe de serveurs Web contient uniquement le compte du serveur Web (et éventuellement un autre compte webmaster). Par exemple, si votre nom d'utilisateur est « mon compte » et que l'utilisateur du serveur Web est « apache » dans le groupe « apache », alors, depuis un accès shell, vous pouvez utiliser la commande suivante : $ chown -R myaccount:apache limesurvey/ . Ensuite, définissez les autorisations des fichiers et des sous-répertoires.

Pour que le script fonctionne correctement, l'accès en écriture à certains répertoires est nécessaire :

  • Le répertoire /limesurvey/application/config nécessite "Lecture et écriture" pour enregistrer les paramètres de configuration de l'application
  • Le /limesurvey/ Le répertoire tmp et ses sous-répertoires sont utilisés pour les importations/téléchargements et doivent être définis sur « Lecture et écriture » pour votre serveur Web 
  • Le répertoire/téléchargement et tous ses sous-répertoires doivent également avoir la valeur « Lecture » & Autorisations d'écriture afin de permettre le téléchargement d'images et de fichiers multimédias
  • Tous les autres répertoires et fichiers peuvent être définis en « Lecture seule »
Astuce : en supposant que vous ayez suivi les recommandations ci-dessus sur le propriétaire/groupe, ces paramètres peuvent être appliqués par les commandes suivantes :

$ chmod -R o-r-w-x limesurvey/

$ chmod -R -w limesurvey/

$ chmod -R 770 limesurvey/application/config

$ chmod -R 770 limesurvey/tmp

$ chmod -R 770 limesurvey/upload

Définition des autorisations de fichiers sur un serveur Web hébergé

Compte tenu de la difficulté d'une procédure standard pour sécuriser une application Web sur un environnement hébergé, elle est plutôt difficile car les environnements hébergés diffèrent à bien des égards.

Dans le cas du serveur géré, le serveur a besoin d'un accès en écriture à certains répertoires pour que le script fonctionne correctement :

  • Le répertoire /limesurvey/tmp est utilisé pour les importations/téléchargements et doit être défini sur « Lecture et écriture ». ' pour votre serveur Web
  • Le répertoire upload/et tous ses sous-répertoires doivent également avoir « Read & Write » pour votre serveur Web afin de permettre le téléchargement d'images et de fichiers multimédias
  • Les autres répertoires et les fichiers doivent être définis sur « Lecture seule »
Astuce :
  • Selon la configuration de votre serveur web, vous devrez modifier les droits sur les dossiers inscriptibles en 755 ou 777 pour les rendre accessibles en écriture pour le web serveur. Essayez d'abord 755, si cela ne fonctionne pas, « mettez à niveau » vers 777
  • Vous pouvez également essayer de supprimer l'accès en lecture d'autres utilisateurs à config.php en définissant les autorisations de ce fichier sur 750 - si cela ne fonctionne pas, « mettez à niveau ' au 755

Autorisations de fichiers Windows

Si vous utilisez un serveur Windows, vous devez vous assurer que le dossier admin permet au propriétaire du processus du serveur Web d'écrire des fichiers dans ce répertoire. Le reste des fichiers peut être défini en lecture seule et exécuté.

Autres problèmes de sécurité

Ce qui suit ne sont que des recommandations. LimeSurvey en général est très sûr sans ces mesures supplémentaires. Si vous collectez toutefois des données extrêmement sensibles, un peu de sécurité supplémentaire peut vous aider :

Utilisation de SSL

Nous recommandons généralement l'utilisation de SSL pour les données d'enquête sensibles. Vous activez généralement SSL en configurant correctement votre serveur Web et en utilisant un certificat SSQL. Si vous avez activé SSL, vous devez appliquer SSL à tout moment à partir des global settings de LimeSurvey. De plus, vous ne pouvez configurer l'utilisation de cookies « sécurisés » qu'en modifiant les option respective dans config.php.

L'accès au fichier config.php

  You must update application/config/config.php only after the first installation is done and it works.


The /application/config/config.php file contains a user name and password for your database server. This poses certain security issues, particularly if you are using a login that has high level administrative access to your database. In the event of some error returning the content of this PHP file to a user's browser, your database password and other details could be compromised (however, this is a very unlikely scenario). The best way to minimize risk is to set up a specific login that has specific rights only to your LimeSurvey database.

Another way to secure this information can be to put the information from the /application/config/config.php file in a non-web directory, i.e. for Apache users this is the directory above the htdocs (also known as public_html or www) folder. Basically, you will use config.php, but have one line in it - a line that includes the file with ACTUAL configuration information (ex: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Remove all actual configuration information from /application/config/config.php and paste it into the other file (configreal.php) that is mentioned in the /application/config/config.php file. This other file should be located in a non-web directory. Then, /application/config/config.php will not contain database passwords etc. - just the name of the file that DOES contain the database info.

This avoids having to change all the other files that include /application/config/config.php, since config.php 're-directs them' towards the configuration file that is located in a non-web directory which includes all the real configuration information. However, you will need to edit configreal.php and change the follow parameters to use absolute directory paths to work properly:

'basePath' => dirname(dirname('''FILE''')),
'runtimePath' => dirname(dirname(dirname('''FILE'''))).DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.'runtime',
[...]

'urlManager' => array(
   [...]
   'rules' => require('routes.php'),
   [...]
);

Example:

'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
[...]

'urlManager' => array(
   [...]
   'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
   [...]
);

Also, don't use "admin" as the default user. Go to your MySQL database (or the one in which you installed LimeSurvey) and change default user name "admin" to whatever you prefer (e.g. "admin_xyz"). It will now be much harder to guess the administrator's new user name. Remember, this is one of the two variables intruders can use to gain access. The admin password is the other variable. So choose both of them with extreme caution.


Content Security Policy (CSP)

DISCLAIMER - The CSP provided here is an example only and is not meant to used verbatim. It is meant as a starting point and you MUST adapt it to your needs and test it thoroughly.

<IfModule mod_headers.c>
        Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'self'; frame-ancestors 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i"
</IfModule>