Programmazione in base alla distinzione tra maiuscole e minuscole

8

Come molti siti web, utilizziamo gli indirizzi email come identificativi dell'utente per gli accessi.

RFC 5321 [ # 2.3.11 ] afferma che le parti locali degli indirizzi email:

MUST be interpreted and assigned semantics only by the host specified in the domain part of the address

Ciò significa che le applicazioni che elaborano gli indirizzi e-mail non possono indovinare, ad esempio, il modo in cui GMail ignora i punti quando si determinano i nomi utente . Questo significa anche che le applicazioni devono trattare indirizzo e-mail locali-parti come maiuscole e minuscole, dal momento che è così che è stata specificata la parte locale href="http://tools.ietf.org/html/rfc5321#page-42"> .

sono stupidi , e in un caso recente un utente che aveva firmato con un indirizzo email maiuscolo (e aveva ricevuto con successo e fatto clic sull'e-mail di verifica) ha scoperto che non erano in grado di accedere perché ora stavano utilizzando il formato minuscolo del loro indirizzo email.

Non mi sono mai imbattuto in un server di posta elettronica che ha imposto la distinzione tra maiuscole e minuscole sulla posta in arrivo. Non dubito che alcuni esistano da qualche parte, ma mi chiedo se non ci sia un vantaggio maggiore nel ridurre la distinzione tra maiuscole e minuscole per i nostri nomi utente di e-mail rispetto a problemi che potrebbero esserci.

Non mi spingerei così lontano da emulare l'elaborazione di GMail punti, o qualsiasi tipo di plus-indirizzamento , perché quelli non sembrano essere onnipresenti o automaticamente assunti come caso-sensibilità. Tuttavia, sono consapevole che non è uno scenario in bianco e nero, quindi sono interessato se qualcuno sa quanto siano effettivamente diffusi indirizzi email sensibili al maiuscolo / minuscolo.

    
posta Gareth 04.01.2012 - 13:30
fonte

3 risposte

16

link (corsivo aggiunto):

While the above definition for Local-part is relatively permissive, for maximum interoperability, a host that expects to receive mail SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form or where the Local-part is case-sensitive.

La RFC scoraggia la sensibilità alle maiuscole e minuscole. Inoltre, personalmente non ho mai visto un host con parti locali sensibili al maiuscolo / minuscolo.

Gli indirizzi email senza distinzione tra maiuscole e minuscole sono uno standard de facto.

Pertanto, ritengo corretto affermare che vi è un maggiore vantaggio nel ridurre la distinzione fra maiuscole e minuscole per i nomi utente delle e-mail rispetto a problemi di conservazione.

    
risposta data 04.01.2012 - 13:41
fonte
5

Paragrafo 2.4. Principi generali di sintassi e modello di transazione di stati RFC 5321 (enfasi mia):

Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts. In particular, for some hosts, the user "smith" is different from the user "Smith". However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged. Mailbox domains follow normal DNS rules and are hence not case sensitive.

AFAIK tutti gli host di posta più diffusi evitano le email sensibili al maiuscolo / minuscolo e dovresti farlo anche tu. Non ho utilizzato un servizio che presupponeva la distinzione tra maiuscole e minuscole per le e-mail e odio essere sorpreso.

    
risposta data 04.01.2012 - 13:45
fonte
4

Quello che dovresti fare è utilizzare l'indirizzo email fornito per inviare e-mail e trasformarlo in qualcosa di meno incline agli errori quando lo utilizzi come identificatore di account o almeno come usarlo come fallback quando non trovi un esatto partita.

Questo sarebbe un analogo molto approssimativo a quello che l'algoritmo Soundex fa per parole o nomi in inglese rimuovendo le cose che creano ambiguità. Ad esempio, è possibile convertire l'intero indirizzo in lettere minuscole e rimuovere i sottoindirizzi e i simboli non alfanumerici dalla parte locale (ad es., [email protected] ridurrebbe a [email protected] ). Applicando la stessa trasformazione a qualsiasi indirizzo utilizzato durante l'accesso si otterrebbe una corrispondenza per più varianti, e l'utente non ne ha più, perché qualsiasi altro uso dell'indirizzo sarebbe la versione fornita.

Da un punto di vista tecnico, ciò rende i tuoi accessi marginalmente più facili alla forza bruta. Se questo è un problema, puoi sempre richiedere una corrispondenza esatta per gli accessi e fornire un'opzione "Dimenticato il mio login o password" che è tollerante quando si cerca l'account poiché qualsiasi e-mail che si invia sarà all'indirizzo "giusto".

Se un indirizzo come quello sopra rende tutto attraverso la registrazione e la verifica, non penso che sarebbe irragionevole rifiutare altri che si trasformano allo stesso modo dei duplicati. Direi che qualsiasi sito che assegni indirizzi locali come Lance.Boyle , LanceBoyle , lance.boyle e lanceboyle e li tratti come diversi potrebbe essere la fonte di altri tipi di problemi.

    
risposta data 04.01.2012 - 14:27
fonte

Leggi altre domande sui tag