Torna indietro   Hardware Upgrade Forum > Networking e sicurezza > Antivirus e Sicurezza > AV e sicurezza in generale

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-12-2007, 13:02   #1
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
LOL ridicola verifica di indirizzi email con regular expressions

Chiunque usi internet si sara' trovato spesso in siti internet dove viene fatta la verifica di un indirizzo email mediante regular expressions (specialmente con javascript) che opera puramente sul formato dell'indirizzo, perche' questa e' la strada che purtroppo molti (poor) developers scelgono (o e' l'unica che conoscono) - personalmente nelle mie applicazioni opero la verifica dell'esistenza della mailbox direttamente sul server del dominio dell'indirizzo, ma sembra che purtroppo non molti sviluppatori facciano altrettanto).
Le regular expressions sono uno strumento molto potente per fare molte cose, ma leggendo attentamente le specifiche RFC2822 sull'SMTP (sto scrivendo un servizio web interfacciato ad un mail server), pare che molti siti web facciano controlli che non dovrebbero affatto, applicando restrizioni che non dovrebbero, toppando invece li' dove dovrebbero bloccare..usando caratteri speciali...

Es. Paragrafo 2.3.10: La prima parte dell'indirizzo email, quella che precede il simbolo @, e' definita "local part", e dovrebbe essere interpretata solo dall'host che riceve la mail inviata a quell'indirizzo, e che in pratica gestisce la posta elettronica per il dominio di quell'indirizzo email.

Indirizzi email del tipo:

"Abc\@def"@esempio.com
"Sisu Poika"@esempio.com
"Sisu\\Poika"@esempio.com
"Sisu@poika"@esempio.com
sisu/[email protected]
[email protected]
!def!xyz%[email protected]
[email protected]

stando alle specifiche dell'SMTP, sarebbero completamente validi, ma verrebbero bloccati da stupidi controlli javascript e simili, basati sulle regular expressions, solo perche' contengono caratteri come le virgolette, slash, backslash, dollaro, punto esclamativo, percentuale, underscore o altri simboli come la &, l'asterisco, il segno -, il simbolo di uguale, apice, apostrofo, elevato a potenza, circa, cancelletto, segno +, punto interrogativo, parentesi graffe!!!

Stando alle specifiche sull'SMTP, un validatore di indirizzi email dovrebbe praticamente ignorare la prima parte (locale) dell'indirizzo.

Cosa c'e' di piu'? Molti di questi controlli basati sulle RE bloccano anche indirizzi email che facciano uso del formato xxxx.xxxx.com, cioe' con un altro punto (o piu' di uno) precedenti l'estensione del dominio (come, nell'esempio, .com).
Anche questo e' errato!!! Pensate ai domini .name: io posso registrare un dominio del tipo sisu.poika.com (formato nome.cognome.com), ma a conti fatti mi verrebbe bloccato e rifiutato da moltissimi, innumerevoli applicazioni e servizi web!!!

Il bello, per chiudere, e' che molti servizi e applicazioni antispam e antiphishing usano le regular expressions per verificare la validita' di un indirizzo email, invece di verificarne l'esistenza fisica sul server, solo perche' piu' rapido. Ogni buon programmatore sa che vi sono caratteri speciali e trucchetti vari per aggirare anche regular expressions abbastanza restrittive, e certamente gli spammers professionisti ne sono a conoscenza.
Mi chiedo, dunque, perche' molti servizi e applicazioni continuino ad usare metodi cosi' stupidi per effettuare verifiche anziche' controllare l'esistenza della mailbox;

1) si rischia di bloccare indirizzi email validi (infatti, se e' vero che nessuno probabilmente usa indirizzi email del tipo che ho scritto sopra - sebbene validi secondo le specifiche, e' anche vero che in alcuni casi indirizzi con domini nome.cognome.com - giusto per esempio - verrebbero bloccati da una regola scritta male e che non tiene conto delle specifiche SMTP)

2) uno spammer che sa come aggirare controlli fatti con le regular expressions puo' scriversi un programmino che mandi milioni di emails generando indirizzi a tromba che bypassino tali controlli (credetemi, molto piu' facile di quanto probabilmente uno pensa).

L'invito e', dunque, agli sviluppatori in ascolto: verificate l'esistenza di una mailbox sul server (e' vero che e' un po' complicato scriversi del codice per far cio', ma e' anche vero che vi sono molti webservices pronti allo scopo), e lasciate perdere javascript e regular expressions

Ultima modifica di Sisupoika : 31-12-2007 alle 13:06.
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 31-12-2007, 13:05   #2
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
ps: Il codice di questo stesso forum, VBulletin 3, riconosce come valido tra gli indirizzi di esempio che ho scritto, soltanto l'ultimo, [email protected]
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 11:19   #3
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Nessun commento?
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 11:20   #4
W.S.
Senior Member
 
L'Avatar di W.S.
 
Iscritto dal: Nov 2005
Messaggi: 1868
Ciao Sisu!

Sicuramente usare javascript (o qualsiasi codice lato client) per verificare la validità dei dati immessi è una scelta discutibile, spesso sbagliata visto che basta creare la richiesta "a mano" per scavalcare il controllo.

Se l'unico scopo è verificare l'esistenza dell'indirizzo hai assolutamente ragione.

Però (non serve certo che te lo dica io ) è sempre buona norma verificare i dati prima di usarli, per questo i controlli sono molto più restrittivi. Da protocollo SMTP, un indirizzo contenente un vettore d'attacco può essere valido ma la nostra applicazione potrebbe venirne compromessa. Il tuo metodo può (ovviamente in teoria) essere sfruttato per inviare un injection vector ad un server smtp vulnerabile usando la tua applicazione.
Nella maggior parte dei casi, i controlli che reputi troppo restrittivi servono ad evitare che il campo "indirizzo mail" venga usato per attaccare l'applicazione.
__________________
[ W.S. ]
W.S. è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 11:22   #5
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
Quote:
Originariamente inviato da Sisupoika Guarda i messaggi
Nessun commento?
secondo me non c'è spazio per i commenti; credo i complimenti per le tue ricerche contiune di bug ti siano già stati fatti; e in generale anche questo topic non fa che accrescere la tua reputazione di ottimo utente;
comuqnue bella scoperta
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 14:21   #6
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Quote:
Originariamente inviato da W.S. Guarda i messaggi
Ciao Sisu!

Sicuramente usare javascript (o qualsiasi codice lato client) per verificare la validità dei dati immessi è una scelta discutibile, spesso sbagliata visto che basta creare la richiesta "a mano" per scavalcare il controllo.

Se l'unico scopo è verificare l'esistenza dell'indirizzo hai assolutamente ragione.

Però (non serve certo che te lo dica io ) è sempre buona norma verificare i dati prima di usarli, per questo i controlli sono molto più restrittivi. Da protocollo SMTP, un indirizzo contenente un vettore d'attacco può essere valido ma la nostra applicazione potrebbe venirne compromessa. Il tuo metodo può (ovviamente in teoria) essere sfruttato per inviare un injection vector ad un server smtp vulnerabile usando la tua applicazione.
Nella maggior parte dei casi, i controlli che reputi troppo restrittivi servono ad evitare che il campo "indirizzo mail" venga usato per attaccare l'applicazione.


Ciao WS! (ma dov'eri finito? )
Il bello di questa cosa, che volevo sottolineare, e' che questi controlli possono sembrare restrittivi eliminando possibili indirizzi email invece validi (dal momento che questi controlli ignorano alcune parti delle specifiche) ma dal momento che ci sono trucchetti per bypassarli e considerando che la grande maggioranza degli sviluppatori di certo non verifica l'esistenza di una mailbox sul server, questi controlli per me sembrano, appunto, restrittivi.
Intendevo questo, piu' che altro, ma anche con le injection alla fine si puo' giocare proprio perche' una volta bypassate le re, e' molto probabile che non vi siano migliori controlli server side.

Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
secondo me non c'è spazio per i commenti; credo i complimenti per le tue ricerche contiune di bug ti siano già stati fatti; e in generale anche questo topic non fa che accrescere la tua reputazione di ottimo utente;
comuqnue bella scoperta
Grazie ma...non intendevo ovviamente questo.
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 15:14   #7
W.S.
Senior Member
 
L'Avatar di W.S.
 
Iscritto dal: Nov 2005
Messaggi: 1868
Quote:
Originariamente inviato da Sisupoika Guarda i messaggi
Ciao WS! (ma dov'eri finito? )
Hehe, negli ultimi 6 giorni la cosa più tecnologica che mi son portato appresso è stato l'RFID dello skipass

Quote:
Originariamente inviato da Sisupoika Guarda i messaggi
Intendevo questo, piu' che altro, ma anche con le injection alla fine si puo' giocare proprio perche' una volta bypassate le re, e' molto probabile che non vi siano migliori controlli server side.
Questo è un problema sempre più diffuso (complice anche il web2.0), si tende a dimenticare l'importanza di validare i dati lato server. Sono davvero pochi i casi in cui possiamo fidarci dell'utente, eppure spesso si trovano applicazioni web che danno per scontata la correttezza dei dati che il client invia al server.
__________________
[ W.S. ]
W.S. è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 15:33   #8
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Esatto
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 16:06   #9
vectorx
Junior Member
 
Iscritto dal: Jan 2011
Messaggi: 2
Non per andare contro il tuo pensiero, sisupoika, ma se ho capito bene tu attiveresti un socket sulla 25 e faresti un helo per vedere se ti restituisce un '200'.
GIUSTO?
Però nel caso in cui il server mail fosse down, o se tutto il server fosse down per un giorno, o ancora se tu non avessi accesso al server SMTP impediresti l'iscrizione dell'utente al sito.
vectorx è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 21:18   #10
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Hai riesumato un post vecchio 3 anni?
Cmq per rispondere alla tua domanda, non necessariamente, immagino dipenda anche dal tipo di servizio. Quel tipo di controllo potrebbe essere disattivato solo in quei -teoricamente rari- momenti in cui mail puo' essere down.
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2011, 01:35   #11
vectorx
Junior Member
 
Iscritto dal: Jan 2011
Messaggi: 2
È un argomento interessante e sono ideciso su come fare questo test per il mio sito.
All'epoca ho sempre e solo controllato le RE ma è un metodo che fa abbastanza schifo, perché poi mi trovo in database un'infinità di utenti temporanei che dovranno essere cancellati.
Io anzichè fare tutto quel robo con il socket controllerei prima con uno script lato server le RE e poi effettuerei un bel DNS al dominio per vedere se è esistente.
Siccome ancora non l'ho provato, secondo te sussiste lo stesso il problema del server down?
Il DNS server ha un database all'interno. Credo dovrebbe essere diennessatto anche se down. Mai provato?
Di sicuro riesco a scansare il problema dell'accesso non concesso all'SMTP.
Altri metodi?

Ultima modifica di vectorx : 22-01-2011 alle 01:39.
vectorx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Infineon apre il 2 luglio lo Smart Power...
Crimson Desert non si ferma: il gioco di...
Con iOS 27 l'iPhone si ripristina da sol...
Visa porta i pagamenti in ChatGPT: gli a...
OpenAI valuta un 'drastico' taglio dei p...
Il MacBook con display touch si far&agra...
Google promette di restituire più...
Quattro monitor 4K, doppia LAN 2.5G e Wi...
ROG Equalizer, il cavo 'salva-GPU': prim...
Falla critica CVSS 9.8 in Oracle PeopleS...
Microsoft accelera su Edge: aggiornament...
AMD ha corretto un bug da 10.000 dollari...
Vertiv: data center, la corsa dell’IA sp...
Siri non diventerà la tua fidanzata virt...
Prezzi in crescita del 200% e forniture ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v