Quand on demande à AlternC de générer un mdp, il ne prend pas en compte la complexité du mdp configuré dans AlternC.
Par ex, on a mis complexité à 3 et on a regulièrement des mdp avec 1 ou 2 classes de caractères seulement.
Autre adaptation, si la complexité demandée est 1,2 ou 3, la fonction retourne un mdp avec 3 classes (min / maj / chiffres).
Si la complexité est à 4, il inclut les cars spéciaux.
Je préfère, perso, éviter les cars spéciaux s'ils ne sont pas requis.
--- alternc_modified/usr/share/alternc/panel/admin/mail_edit.php 2017-06-07 16:42:50.000000000 +0200
+++ admin/mail_edit.php 2017-06-09 16:29:54.871021884 +0200
@@ -56,6 +56,10 @@
<?php
+// On récupère la complexité du mdp qu'on doit générer que l'on va psser en paramètre de la fonction display_div_generate_password
+$c=$admin->listPasswordPolicies();
+$passwd_classcount = $c['pop']['classcount'];
if (isset($error)) {
echo "<p class=\"alert alert-danger\">$error
Il faut faire les mêmes modifications pour les fichiers suivants (tous ceux qui appellent la fonction 'display_div_generate_password' pour lui ajouter le paramètre):
admin/mman_add.php (alternc mailman)
admin/mman_passwd.php (alternc mailman)
admin/hta_adduser.php
admin/hta_edituser.php
admin/hta_edit.php
admin/aws_users.php
admin/aws_pass.php
admin/ftp_edit.php
admin/mem_param.php
admin/adm_add.php
admin/adm_edit.php
admin/adm_slavedns.php *
admin/adm_mxaccount.php *
admin/sql_user_add.php
admin/sql_users_password.php
* Attention, ces 2 fichiers n'utilisent que 2 des 3 paramètres de la fonction 'display_div_generate_password'. Donc pour ajouter le 4ème, il faut aussi ajouter un 3ème vide.
Dans le même ordre d'idée, la fonction create_pass du fichier 'class/functions.php' qui est appelée lors de la création d'un utilisateur mysql via creation DB, d'un nouveau compte alternc et dun nouveau compte piwik, ne prend pas en compte la complexité du mdp défini dans les options.
C'est surtout le 1er cas qui pouvait être problématique.
On crée une Db, AlternC crée auto le user avec le même nom.
Pour ça, il générait un mdp et si le hasard de la génération renvoyait un mdp qui n'atteignait pas la complexité définie pour ce compte, la Db était créée, mais pas le user (et l'erreur n'était pas affichée, juste un msg comme quoi le user était 'not found').
Création d'un utilisateur mysql quand on crée une DB:
Fichier class/m_mysql.php, fonction 'add_db'
function add_db($dbn) {
// Ajouté la variable globale $admin
global $db, $err, $quota, $cuid, $admin;
...
$db->query("SELECT name from dbusers where name= ? and enable='ACTIVATED' ;", array($dbname));
if (!$db->num_rows()) {
// On récupère la complexité du mdp qu'on doit générer que l'on va passer en paramètre de la fonction create_pass
$c=$admin->listPasswordPolicies();
$passwd_classcount = $c['mysql']['classcount'];
$password_user = create_pass(10, $passwd_classcount);
if (!$this->add_user($dbn, $password_user, $password_user)) {
}
}
Nouveau compte alternc:
Fichier class/m_mysql.php, fonction 'alternc_add_member'
Il n'est pas nécessaire de donner la comlexité du mdp en param.
Avec la nouvelle fonction, il prendra 3 de complexité par défaut, ce qui est bien pour ce mdp.
J'ai juste retiré le paramètre pour qu'il prenne la longueur par défaut défini à la fonction create_pass
$password = create_pass();
Nouveau compte piwik:
Fichier class/m_piwik.php, fonction 'user_add'
Il n'est pas nécessaire de donner la comlexité du mdp en param non plus.
Y a rien de changé
Longueur par défaut des mdp.
Il serait bien d'avoir cette option dans les variables AlternC.
Actuellement, c'est 8 qui est mis dans le code, je trouve que c'est trop petit de nos jours, je ne sais pas changer ça sans aller dans le code.
Quand on demande à AlternC de générer un mdp, il ne prend pas en compte la complexité du mdp configuré dans AlternC. Par ex, on a mis complexité à 3 et on a regulièrement des mdp avec 1 ou 2 classes de caractères seulement.
J'ai refait la fonction. Fonction trouvée sur le net, adaptée pour prendre en compte les cars spéciaux. https://stackoverflow.com/a/43131749
Autre adaptation, si la complexité demandée est 1,2 ou 3, la fonction retourne un mdp avec 3 classes (min / maj / chiffres). Si la complexité est à 4, il inclut les cars spéciaux. Je préfère, perso, éviter les cars spéciaux s'ils ne sont pas requis.
-function generate_password(len){
+function generate_password(passwordLength, classcount) {
+function shuffleArray(array) {
-function generate_password_html(id, size, field1, field2) {
$("#z"+id).html(" "); +function generate_password_html(id, size, field1, field2, classcount) {
$("#z"+id).html(" "); $("#inp"+id).focus(); $("#inp"+id).select(); if (field1 != "") { $(field1).val( $("#inp"+id).val() ); }
Fichier admin/mail_edit.php
if (isset($error)) { echo "<p class=\"alert alert-danger\">$error
"; } @@ -98,7 +102,7 @@Il faut faire les mêmes modifications pour les fichiers suivants (tous ceux qui appellent la fonction 'display_div_generate_password' pour lui ajouter le paramètre):
* Attention, ces 2 fichiers n'utilisent que 2 des 3 paramètres de la fonction 'display_div_generate_password'. Donc pour ajouter le 4ème, il faut aussi ajouter un 3ème vide.
Dans le même ordre d'idée, la fonction create_pass du fichier 'class/functions.php' qui est appelée lors de la création d'un utilisateur mysql via creation DB, d'un nouveau compte alternc et dun nouveau compte piwik, ne prend pas en compte la complexité du mdp défini dans les options.
C'est surtout le 1er cas qui pouvait être problématique. On crée une Db, AlternC crée auto le user avec le même nom. Pour ça, il générait un mdp et si le hasard de la génération renvoyait un mdp qui n'atteignait pas la complexité définie pour ce compte, la Db était créée, mais pas le user (et l'erreur n'était pas affichée, juste un msg comme quoi le user était 'not found').
Fichier class/functions.php, nouvelle fonction 'create_pass' (basée sur celle-ci: https://gist.github.com/tylerhall/521810)
Création d'un utilisateur mysql quand on crée une DB: Fichier class/m_mysql.php, fonction 'add_db'
Nouveau compte alternc: Fichier class/m_mysql.php, fonction 'alternc_add_member' Il n'est pas nécessaire de donner la comlexité du mdp en param. Avec la nouvelle fonction, il prendra 3 de complexité par défaut, ce qui est bien pour ce mdp. J'ai juste retiré le paramètre pour qu'il prenne la longueur par défaut défini à la fonction create_pass
Nouveau compte piwik: Fichier class/m_piwik.php, fonction 'user_add' Il n'est pas nécessaire de donner la comlexité du mdp en param non plus. Y a rien de changé
Longueur par défaut des mdp. Il serait bien d'avoir cette option dans les variables AlternC. Actuellement, c'est 8 qui est mis dans le code, je trouve que c'est trop petit de nos jours, je ne sais pas changer ça sans aller dans le code.