Quando ho sottoscritto un servizio da DHL (servizio di consegna pacchi in Germania), hanno avuto la più strana guida per le password che ho visto finora:
- Almeno 8 caratteri ma non più di 13.
- Solo uso di caratteri "validi". I caratteri indicati non includevano
'
o"
o;
o\
che sono le cose che proverei ad usare prima in una iniezione SQL. - Almeno una lettera maiuscola e minuscola.
- Una cifra, ma non all'inizio .
Perché si dovrebbe vietare una cifra come primo carattere? In un mondo perfetto, salverebbero e cancellerebbero la password usando bcrypt
o scrypt
e tutte quelle restrizioni sul limite superiore dell'entropia potrebbero essere facilmente revocate. Apparentemente hanno un sistema di archiviazione debole come VARCHAR(13)
o un triste mix di codice legacy e gestione delle carriere del carico.
Non riesco ancora a capire la regola in base alla quale la cifra non appare all'inizio della password. Perché dovrebbe farlo? L'unica cosa che posso pensare è che PHP valuta l'espressione "1Test" == 1
su true. In caso contrario, gli identificatori nei linguaggi di programmazione non devono iniziare con una cifra. Forse questa è l'origine dei "caratteri validi"?
Si può indovinare cosa sta facendo DHL nel back-end?