2009-10-01 13 views
12

In teoria le e-mail sono case sensitive. Ma usando le e-mail come login di sistema, voglio che siano tutte in minuscolo (ad esempio, [email protected] e [email protected] non possono essere utenti diversi).Posso trattare in modo sicuro gli indirizzi email in minuscolo?

Questo può essere un problema per alcuni utenti che utilizzano la distinzione tra maiuscole e minuscole nel proprio indirizzo di posta elettronica? qualcuno lo usa là fuori?

Modifica: Perché ci sono molte risposte "salva caso su salvataggio, ignora per login": questo sistema si interromperebbe se io avessi davvero due utenti diversi john @ smith e John @ smith, non è vero?

Esempio: john @ smith e John @ smith hanno la password 123. Come faccio a sapere quale è stato appena autenticato?

+2

Scommetto che * qualcuno * lo usa. Ma è il loro problema – SilentGhost

+1

@SilentGhost: non posso dire di essere d'accordo con te - è il nostro problema come sviluppatori, e piuttosto semplice a questo;) – RedFilter

risposta

6

Alcuni sistemi sono sensibili al maiuscolo/minuscolo.

Suggerirei di essere conservato ma ignorato i filesystem di la windows.

Ad esempio, john si è iscritto a [email protected], ma ha lasciato il login come [email protected], [email protected] o [email protected]

È improbabile che causi conflitti e se qualcuno ha un'e-mail sensibile al maiuscolo/minuscolo sono sicuro che ne sarà a conoscenza.

+1

Vedi la mia modifica. Penso che ciò funzionerebbe solo se conservassi i casi ma proibissi ogni nuova registrazione con le stesse lettere ma casi diversi, che contraddicono l'intera faccenda della sensibilità al caso, no? –

+0

Questo è esattamente quello che sto suggerendo – wefwfwefwe

+0

Sono consapevole che questo thread è un po 'vecchio ma ho avuto un'idea che potrebbe aiutare alcuni. È sempre possibile archiviare sia un record conservato sia un record di casellario inferiore. Utilizza il record di casing inferiore per i tuoi assegni e il record conservato per le tue email. – diggersworld

0

Sì, questo è un problema. Ho appena fatto un piccolo test su Linux (eseguendo exim) e solo la posta con il caso corretto ha raggiunto la casella di posta ...

Penso che la maggior parte dei fornitori di posta commerciale normalizzi tutti gli indirizzi di posta elettronica, ma in generale devi usare il caso corretto !

0

This link afferma che "quasi nessun servizio di posta elettronica o ISP applica indirizzi email sensibili al maiuscolo/minuscolo".

+4

Traduzione: alcuni servizi di posta elettronica/ISP applicano indirizzi email sensibili al maiuscolo/minuscolo. – Bill

+0

Un'altra traduzione: non importa, tranne quando lo fa. – RedFilter

0

Non conosco alcuna implementazione che distingua tra indirizzi di posta elettronica con le stesse lettere ma in casi diversi.

Non ho mai sentito di un messaggio non trasmesso correttamente solo perché i casi erano sbagliati.

13

Secondo RFC 2821:

Il locale-parte di una cassetta postale deve essere trattato come maiuscole e minuscole. Pertanto, le implementazioni SMTP DEVONO avere cura di preservare il caso delle parti locali delle cassette postali. I domini delle cassette postali non sono case sensitive. In particolare, per alcuni host l'utente "smith" è diverso dall'utente "Smith". Tuttavia, l'utilizzo della distinzione tra maiuscole e minuscole delle parti locali delle cassette postali impedisce l'interoperabilità e viene scoraggiato.

Così, mentre puoi trattare gli indirizzi email con la distinzione tra maiuscole e minuscole, sei scoraggiato dal farlo.

+0

Ho letto quel paragrafo (collegato ad esso nella mia domanda) ma si tratta di un sì o di un no? Quanto è applicabile nei sistemi reali? –

+1

È un sì, per la maggior parte dei valori di "sicuro". Probabilmente non incontrerai un problema e, se lo fai, la soluzione (usando un indirizzo diverso) è più facile dei problemi di esperienza dell'utente che causerai applicando il caso. –

0

Se lo si utilizza come accesso di sistema, non è necessario. Di solito (quando si parla di accessi), admin e Admin sono la stessa persona ... quindi anche JohnDoe e johndoe ... anche il numero di persone che usano provider di posta elettronica che consentono la distinzione tra maiuscole e minuscole è molto, troppo basso.

5

IMHO memorizza e visualizza l'indirizzo nel modo in cui l'utente l'ha inserito, non solo perché la RFP dice che devi rispettare il caso, ma perché se l'utente ha una preferenza, dovresti rispettare questa preferenza. È il il loro indirizzo email. Non sono un fan dei sistemi che riformattano i dettagli personali che fornisco loro.Ad esempio, saresti sorpreso di quanti sistemi INSIST mi chiamino "Tj" - che è chiaramente sbagliato - piuttosto che "T.J." (+1 a SO per farlo bene).

Quindi, se John Smith si registra come "[email protected]", è così che John Smith vuole vedere il suo indirizzo di posta elettronica (se ha una preferenza). Probabilmente non permetterei che qualcun altro si iscriva con l'indirizzo di posta elettronica "[email protected]" perché le probabilità sono schiaccianti che è lo stesso dell'altro indirizzo dell'account, ma non mi farei schifo con la formattazione dell'utente del loro indirizzo o altri dettagli. Al massimo potrei spingerli se mi danno un sacco di GRAFFIATURA DI TUTTI I CAPPELLI, chiedendo se non preferirebbero qualcosa di più ... gentile.

12

Non buttare via dati. Memorizza l'indirizzo email o il nome utente esattamente come lo hai ricevuto, ad eccezione del taglio di entrambe le estremità della stringa.

Quando si invia l'e-mail, utilizzare la custodia fornita dall'utente. Solo perché la distinzione tra maiuscole e minuscole è rara non c'è motivo per non gestirla, altrimenti quell'utente non riceve posta e probabilmente non può neanche registrarsi.

Durante l'autenticazione di un utente, è possibile opzionalmente eseguire un confronto su stringhe minuscole (o maiuscole), in modo che il caso non venga preso in considerazione.

Così, conservando i dati di input dell'utente, vi siete improvvisamente dati delle opzioni: se fare confronti tra maiuscole e minuscole sull'autenticazione e se utilizzare gli indirizzi e-mail sensibili al maiuscolo/minuscolo quando si invia la posta. Anche se non scegli di avvalersene ora, lo scopo di preservare i dati è quello di consentire a te (oa qualche altro sviluppatore) di avere queste scelte lungo la strada.

Problemi correlati