Desactiver la validation des mots de passe en mode DEBUG sous Django


Django 1.9 rajoute la validation de “sécurité” des mots de passe comme corde à son arc.

Personnellement je trouve ça naze.

Je suis pour permettre aux utilisateurs de mettre le password qu’ils veulent, même tout pourri. De toute façon les gens qui ne font pas attention à leur sécurité ne vont jamais se souvenir du mot de passe compliqué et faire un « j’ai oublié mon mot de passe » à chaque fois.

Pire, la complexité ajoutée va faire fuir les nouveaux utilisateurs qui ne vont pas vouloir se faire chier à remplir le formulaire. Ou alors ils vont faire « login with facebook ».

Mais le plus naze dans tout ça c’est que la validation est tout ou rien : on peut pas mettre de la validation juste pour les comptes admin par exemple. Ce qui aurait du sens.

Alors, oui à la mise en oeuvre d’un indicateur de force de mot de passe, mais pas un refus catégorique de s’inscrire comme le système actuel le fait.

Dans tous les cas, vous voudrez au moins le désactiver en mode DEBUG car devoir taper un mot de passe compliqué en dev sur votre machine en local pour accéder à une base de données sqlite de test, c’est relou.

Car oui, ./manage.py createsuperuser refuse votre password si il n’est pas “sécurisé” par défaut. En prod, ça a du sens, mais quand je veux tester une merde sur mon laptop, “admin/admin” est généralement ce je veux.

Donc:

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
        'OPTIONS': {
            'min_length': 9,
        }
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
 
if DEBUG:
    AUTH_PASSWORD_VALIDATORS = []

Enfin, franchement, un validateur de mot de passe basé sur la présence de chiffres. Sérieux ? On a des validateurs basés sur une entropie générale depuis longtemps.

4 thoughts on “Desactiver la validation des mots de passe en mode DEBUG sous Django

  • Greizgh

    La petite voix dans ma tête me souffle qu’entropie ne prend pas de hash, ni après le thé, ni avant d’aller au “i”.

  • HQF Development - Pons Olivier

    C’est plus que naze. J’explique depuis des années à qui veut l’entendre que lorsqu’on demande à un utilisateur de créer son mot de passe :

    1 – c’est de notre devoir de lui expliquer si son mot de passe est sécurisé, ou pas
    2 – il doit pouvoir mettre ce qu’il veut, bordel de mes deux ! Si on explique que quand on saute sans parachute on risque de s’écraser et que le QI d’huître qui vous regarde avec un regard d’où on suspecte une lueur de politicien saute, eh bien : laisser le sauter bordel de merde, on n’est pas là pour prendre les gens par la main !

    Je suis comme toi, ça m’a rendu totalement dingue cette pratique débile, c’est pour ça que je reste en 1.8, sans parler de l’admin où “ou est en méga haute résolution, car, comme 30% des states sont sur Mac en 80000 x 50000, on considère que tout le monde est comme ça et au lieu d’afficher 80 lignes sur un écran normal, et d’améliorer des choses critiques, comme des inlines en Ajax, d’implémenter nativement le JSON dans Django, on n’en affichera plus que 40 mais c’est pas grave, moi, le developpeur principal du template admin, j’en vois 160, c’est bien suffisant.”.

    Heureusement que les autres évolutions sont intéressantes !

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.