CONTRÔLE QUALITÉ MOT DE PASSE POUR MISE À JOUR WINDOWS ACTIVE DIRECTORY VIA LDA

willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009 - 3 août 2008 à 23:02
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 5 août 2008 à 00:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47494-controle-qualite-mot-de-passe-pour-mise-a-jour-windows-active-directory-via-ldap

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 août 2008 à 00:27
faire un controle de type au debut. Et si on passe un objet, la methode __toString est alors utilisee.
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024
5 août 2008 à 00:17
Audalys, j'ai donc repris ton code que je viens de tester.

une petite question : intérêt de l'instruction : $Password = (string) $Password; ?
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024
4 août 2008 à 23:14
merci à Audalys pour son apport et l'optimisation du code que je vais donc modifier en conséquence.

coucou747, ta remarque est pertinente mais je me suis placé dans le contexte de la stratégie de mot de passe d'Active Directory qui est d'origine américaine. Cette stratégie ne tient pas compte des accents si chers à nous français. Donc Password ou Pàssword est pour eux le même mot de passe. Il ne reste donc que 4 catégories, le mot de passe devant utiliser a minima 3 catégories sur 4.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 août 2008 à 13:15
un accent contribue a avoir un mot de passe fort.

la, si tu regardes bien ta variable $count, tu peux avoir : _A5 et pour toi, ca sera un password fort...

un password est fort si il est :
- sans cycles
- avec un jeu de caractere etendus (accents, caracteres speciaux, majuscule, minuscule, chiffres)
- long
- n'est pas dans un dictionnaier (c'est plus dur a regarder.)

sur cette source : http://www.javascriptfr.com/codes/PASSWORD_32047.aspx je n'ai pas verifie si le jeux de caractere utilise etait etendu, mais c'est deja un bon debut.
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
4 août 2008 à 11:28
Salut,

Pourquoi utiliser une boucle alors que c'est inutile ? Tu passes la fonction "preg_match" sur ta chaîne et le tour est joué =)

<?php

function ControlComplexity($sPassword) {

$sPassword = (string) $sPassword;

// Si la chaîne $sPassword est inférieur à 7 on retourne FALSE.
if (strlen($sPassword) < 7) return FALSE;

// On supprime les accents de la chaîne $sPassword.
$sPassword = strtr($sPassword, 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn');

// On initialise le compteur $iReturn.
$iReturn = 0;

// On exécute nos tests.
if (preg_match('`[[:lower:]]`', $sPassword) === 1) $iReturn++;
if (preg_match('`[[:upper:]]`', $sPassword) === 1) $iReturn++;
if (preg_match('`[[:digit:]]`', $sPassword) === 1) $iReturn++;
if (preg_match('`[^a-zA-Z0-9]`', $sPassword) === 1) $iReturn++;

if ($iReturn < 2) return FALSE;

return TRUE;

}

?>
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024
3 août 2008 à 23:15
Je ne suis pas spécialement creusé la tête sur l'optimisation du code mais je suis preneur de toute suggestion pour remplacer les boucle for.
willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
3 août 2008 à 23:02
Fonctions de comptage dans les boucles for : le mal absolu. D'autant plus que c'est chaque fois la même chose...
Tu comptes ton truc dès le début, dans une variable et hop !

ereg ? Le 2ème mal absolu ! Faut utiliser les PCRE !

Ok, je parle d'optimisation, mais bon
Rejoignez-nous