Notes concernant la sécurité

= Préliminaire=

LimeSurvey propose son propre système de sécurité qui est activé par défaut. Les auteurs de LimeSurvey ne pourraient être tenus responsables des problèmes de sécurité du à leur programme. Donc, considérez ce programme comme non sécurisé tant que vous n'aurez pas fait le nécessaire. Cependant, nous prenons avec sérieux tous problèmes de sécurité et réagissons rapidement. Si vous avez connaissance de problème de sécurité dasn LimeSurvey: faites le nous savoir : info@limesurvey.org.

= Permission sur les fichiers et répertoir sur les système Linux/*nix=

Remarques générales sur les permissions des fichiers sous Linux
Les systèmes Linux/*nix sont multi-utilisateurs, c'est à dire que à part vous d'autres peuvent utiliser le même ordinateur et, selon les permissions, accéder à vos fichiers.

Notes: Les permissions sur les fichiers sont spécialement importantes sur les fichiers contenant les mot de passe (config.php pour le mot de passe à votre base de données).

En général, le système qui fait tourner le serveur web est lancé sous un autre compte (www, www-data, apache, nobody ...). Cet utilisateurs doit avoir les droits pour lire les fichiers de limesurvey. Certains hébergeurs utilisent des systèmes pour que votre utilisateur système puisse lire et exécuter les fichiers de limesurvey. Le mieux étant de limiter au maximum les droits sur le fichier config.php.

Quelles permissions sur les fichiers et répertoire sous linux/*nix
Si vous avez installé LimeSurvey sur un serveur sous Linux, vous devez définir les permissions suivantes sur les fichiers :
 * pour le dossier de limesurvey (à adapter en fonction du nom du dossier utilisé pour l'installation) : chmod 755 (lecture et exécution pour tout le monde)
 * pour les fichiers dans le dossier limesurvey : chmod 755 (lecture et exécution pour tout le monde)
 * pour le dossier tmp : chmod 777 (lecture et exécution pour tout le monde). Ce dossier est vide lors de sa création et permet de stocker les fichiers envoyés, les images créées en cas d'utilisation de Jpgraph et tous les fichiers temporaires que peut créer le nouvel éditeur de modèles.
 * pour les fichiers dans le dossier admin : chmod 755 (lecture et exécution pour tout le monde)

Les fichiers de base du dossier admin ne nécessitent pas de droits en écriture. Ils ne devraient même pas les posséder car il n'y a aucune raison de les modifier pendant l'utilisation de LimeSurvey.

Pour régler plus finement les droits usr les répertoires et fichiers, vous pouvez utiliser cette méthode:

$ chmod -R a-w limesurvey/ $ chmod -R a+w limesurvey/tmp $ chmod -R a+w limesurvey/templates $ chmod -R a+w limesurvey/upload

=Permissions des fichiers sous Windows=

Si vous installez LimeSurvey sur un serveur sous Windows, vous devrez vous assurer que le dossier admin est accessible en écriture pour l'utilisateur sous lequel est lancé le serveur web. Les autres fichiers peuvent être simplement en lecture seule et exécutables.

=Autres considérations sur la sécurité=

Le fichier config.php contient un nom d'utilisateur et un mot de passe pour accéder à votre base de données. Cela peut poser quelques soucis si ce compte permet d'obtenir d'importants privilèges. Une solution possible est de créer un utilisateur spécifique pour LimeSurvey avec des droits uniquement sur la base de données dédiée à LimeSurvey.

La meilleure façon de sécuriser ces informations serait de placer ce fichier config.php dans un dossier en dehors de ceux utilisés par le serveur web pour afficher vos sites (par exemple, dans un système Debian, en dehors de /var/www/). Nous n'avons pas de fait de tests dans cette configuration mais il n'y a pas de raison que cela ne fonctionne pas.

Une autre possibilité est d'externaliser la partie connexion en dehors du fichier config. A la place de la partie connexion, vous indiquez include("../../safedata/connect.php"); le fichier connect.php contenant la partie connexion.

NOTE : Si vous décidez de faire ainsi, vous devrez éditer chaque fichier .php fourni avec LimeSurvey pour changer la ligne qui contient `include ("config.php");` en insérant le chemin complet vers le fichier config.php (par exemple cela pourrait donner `include("c:/program files/apache group/apache/phpsafe/config.php");`. Cette ligne se situe généralement en début des fichiers. Comme expliqué ci-dessus, cette solution n'a pas été testée donc nous attendons vos éventuels retours via l'outil de suivi de bogues ou les forums ! Les prochaines versions de LimeSurvey devraient disposer d'une méthode plus simple pour définir le chemin vers ce fichier config.php.