Next Previous Contents

3. Sécurité

3.1 Remarques

PhpCompta a sa propre sécurité, cependant si vous voulez vraiment sécuriser votre comptabilité, vous devez prendre en compte qu'il ne suffit de sécuriser votre server et phpcompta mais aussi les programmes sur lequel le programme s'appuie. C'est-à-dire Apache, utilisation de https à la place de http, de PostGresql, de l'utilisation des odbc, de l'encryption des backups, de la traque des mots de passe trop facile à deviner,... La liste est longue et c'est l'ensemble des mesures qui déterminera la sécurité de vos données, il suffit d'une seule faiblesse pour que la sécurité soit insuffisante. Le sujet est très vaste, il englobe trop de choses. C'est pourquoi nous ne traiterons que de PhpCompta uniquement et un tout petit peu de PostgreSql.

3.2 Base de données

En tout premier lieu, si vous avez réussi à tout installer, vous devez ajouter une sécurité à l'accès de vos database. Donc n'essayez pas d'utiliser install.sh quand la sécurité par mot de passe est activée !!! Ou alors mettez le mot de passe dans  /.pgpass de l'utilisateur phpcompta

Dans include/constant.php changer le mot de passe (ligne phpcompta_password), il contient dany par défaut.

En tant qu'utilisateur postgres, ajoutez un mot de passe à votre utilisateur phpcompta avec la commande // psql -c "alter user phpcompta password 'votre_mot_de_passe'" Ce mot de passe est évidemment celui dont on a parlé au paragraphe précédent.

Ensuite changez le pg_hba.conf, et mettez les lignes suivantes

host   all         all        172.16.31.0  255.255.255.0           md5
local   all         all                                             md5
host    all         all         127.0.0.1         255.255.255.255   md5
La première ligne correspond à mon réseau privé.

Relancez postgres, voilà maintenant un mot de passe sera toujours requis, n'oubliez pas de mettre un mot de passe à vos superutilisateurs PostgreSql avant de changer, sinon vous ne pourrez plus vous connecter.

Ensuite, changer les droits sur le répertoire où sont vos fichiers avec chmod 700, attention : le propriétaire des fichiers doit être le même que du propriétaire du process httpd, pour vérifier faite ps -ef|grep httpd, le propriétaire du processus ttpd se trouve dans la première colonne. Exemple chez moi, le propriétaire est apache

root@july data]# ps -ef|grep httpd
root     24540     1  0 22:47 ?        00:00:00 /opt/http2//bin/httpd -k start
apache   24541 24540  0 22:47 ?        00:00:00 [httpd]
apache   24542 24540  0 22:47 ?        00:00:00 [httpd]
apache   24543 24540  0 22:47 ?        00:00:00 [httpd]
apache   24544 24540  0 22:47 ?        00:00:00 [httpd]
apache   24545 24540  0 22:47 ?        00:00:00 [httpd]
root     24555 23968  0 22:56 pts/0    00:00:00 grep httpd

3.3 PhpCompta

Dans PhpCompta, le module de sécurité permet d'établir quel utilisateur peut accéder à quel dossier, ce qu'il peut y faire, les journaux qu'il peut accéder... Chaque fois qu'une page est chargée, le mot de passe et le login utilisateur sont vérifiés pour savoir si primo il a accès a ce qu'il demandé à faire et secundo si son compte est actif et que le mot de passe fourni est valide. Ces valeurs sont stockées sur le server. Peu de système vérifie aussi souvent les permissions d'un utilisateur. Evidemment utiliser le cache de l'explorateur pour découvrir ces informations est une perte de temps, utiliser son historique pour accéder à vos données ne fonctionnera pas non plus.

Pour ajouter un utilisateur, vous devez tout d'abord avoir les droits admin et créez l'utilisateur. A ce moment-là, il n'a accès à rien du tout. Il faut ensuite se connecter à un dossier sur lequel vous avez des droits admin et l'ajouter, par défaut il ne peut rien faire. A vous de spécifier ce qu'il peut accéder et son droits par défaut (écriture ou lecture). De cette façon, un utilisateur (sauf avec des droits admin ) ne peut pas accéder à des nouveaux dossiers. Chaque accès doit être donné explicitement.

Dans un dossier, un utilisateur a toujours un droit par défaut. Si par exemple, son droit par défaut est de lire il pourra lire tout ce qu'il veut et écrire uniquement dans ce qui a été explicitement permis. Si son droit par défaut est d'écrire, c'est l'inverse, il pourra écrire partout sauf là ou est explicitement il ne peut qu'écrire. Le sens d'écrire dans ce contexte-ci doit se comprendre comme la capacité à pouvoir ajouter ou modifier des informations.


Next Previous Contents