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.
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 md5La 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
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.