Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

Catégorie :Sécurité & Cryptage Classé sous : motdepasse, qualité, activedirectory Niveau : Initié Date de création : 03/08/2008 Date de mise à jour : 05/08/2008 00:21:44 Vu : 2 170

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

La création d'un utilisateur dans Active Directory Win2k3 via LDAP nécessite un mot de passe dont la qualité doit répondre à la stratégie du serveur
 

Source

  • function ControlComplexity($password) {
  • $Password = (string) $Password;
  • // Si la chaîne $Password est inférieur à 7 on retourne FALSE
  • if (strlen($Password) < 7) return FALSE;
  • // On supprime les accents de la chaîne $Password
  • $Password = strtr($Password, 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn');
  • // On initialise le compteur catégorie de caractères
  • $iReturn = 0;
  • // Détection minuscules
  • if (preg_match('`[[:lower:]]`', $Password) === 1) $iReturn++;
  • // Détection majuscules
  • if (preg_match('`[[:upper:]]`', $Password) === 1) $iReturn++;
  • // Détection chiffres
  • if (preg_match('`[[:digit:]]`', $Password) === 1) $iReturn++;
  • // Détection caractères spéciaux
  • if (preg_match('`[^a-zA-Z0-9]`', $Password) === 1) $iReturn++;
  • if ($iReturn < 3) return FALSE;
  • else return TRUE;
  • }
        function ControlComplexity($password) {

              $Password = (string) $Password;

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

             // On supprime les accents de la chaîne $Password
             $Password = strtr($Password, 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn');
         
             // On initialise le compteur catégorie de caractères
             $iReturn = 0;
             // Détection minuscules
             if (preg_match('`[[:lower:]]`', $Password) === 1) $iReturn++;
             // Détection majuscules
             if (preg_match('`[[:upper:]]`', $Password) === 1) $iReturn++;
             // Détection chiffres
             if (preg_match('`[[:digit:]]`', $Password) === 1) $iReturn++;
             // Détection caractères spéciaux
             if (preg_match('`[^a-zA-Z0-9]`', $Password) === 1) $iReturn++;

             if ($iReturn < 3) return FALSE;
             else return TRUE;

        }

Historique

05 août 2008 00:13:53 :
optimisation du code
05 août 2008 00:21:44 :
suppression instruction de debugging

Commentaires et avis

signaler à un administrateur
Commentaire de willeraser le 03/08/2008 23:02:57

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

signaler à un administrateur
Commentaire de thev le 03/08/2008 23:15:04

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.

signaler à un administrateur
Commentaire de audayls le 04/08/2008 11:28:18

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;

}

?>

signaler à un administrateur
Commentaire de coucou747 le 04/08/2008 13:15:40

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.

signaler à un administrateur
Commentaire de thev le 04/08/2008 23:14:25

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.    

signaler à un administrateur
Commentaire de thev le 05/08/2008 00:17:03

Audalys, j'ai donc repris ton code que je viens de tester.

une petite question : intérêt de l'instruction :  $Password = (string) $Password; ?      

signaler à un administrateur
Commentaire de coucou747 le 05/08/2008 00:27:47

faire un controle de type au debut. Et si on passe un objet, la methode __toString est alors utilisee.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Qualité miniature [ par TiotBour ] Bonjour a tous !J'ai un probleme de qualité avec mes miniatures qui sont faites automatiquement par la librairie GD2.Elle sont automatiquement redimen pb. inclusion / htm / php / fction [ par webdesignasp ] Bonjour,je viens de créer un script en PHP (existait en ASP) et ce que je pouvais faire avant en ASP, je ne peux plus le faire en PHP :code PHP qui ma Suivi qualité d'une chaine de production de carte [ par vingrid6 ] Je suis débutante et je veux apprendre à programmer. Je fais donc dans ce cadre un stage et je suis sur un projet qui a été débuté par deux autres sat Problème code Mysql [ par Thomas46 ] Bonjour, Voil&#224; j'ai un petit probl&#232;me avec mon code et je ne trouve pas l'erreur, je cherche encore et encore mais toujours le m&#234;me r& Allo-heberge, un hébergement de qualité ??? [ par tony4758 ] Bonjour, alors voila, je suis chez allo-heberge, mais je me demande si cet h&#233;bergeur est le meilleur de ses concurrents qui proposent des payemen qualité des vignettes photo [ par tynmar ] Bonjour &#224; tous; j'ai un probl&#232;me de compression de mes jpeg. lorsque que je cr&#233;e des vignettes, elles perdent de la qualit&#233;. Mon s Quest ce que cette Erreur (Header) signifie ? [ par milkasoprano ] Bonjour a tous ! quest ce que cette erreur ? et quest ce que ca signifie ?? Warning: Cannot modify header information - headers already sent by (outpu texte -> image : qualité pourrie? [ par Felysk ] &nbsp;Bonjour &#224; tous J'ai un gros probleme avec imgttftext, &#231;a me donne un r&#233;sultat assez immonde sur toutes les polices utilis&#233;es Hebergement php/mysql/PgSQL de qualité recherché [ par Zart ] Bonjour, Je cherche un serveur d'h&#233;bergement professionnel pour plusieurs raisons. Celui que nous utilisons actuellement est mauvais et ne r& verification du login dans la base [ par elksibi ] Bonsoir,J'ai un probleme avec la redirection header ("location") et la verification du mot de passe dans la base en PHP.D'abord, j'ai un formulaire, q


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,811 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.