2010-05-27 12 views
8

Dato che ci sono tanti caratteri validi per gli indirizzi e-mail, esistono indirizzi email validi che possono di per sé essere attacchi XSS o iniezioni SQL? Non sono riuscito a trovare alcuna informazione su questo sul web.Indirizzi email validi - XSS e SQL Injection

La parte locale dell'indirizzo di posta elettronica può utilizzare uno di questi caratteri ASCII:

  • maiuscole e lettere inglesi minuscole (a-z, A-Z)
  • cifre 0 a 9
  • Caratteri! # $% & '* + -/=?^_ `{| } ~
  • Personaggio. (punto, punto, punto) a condizione che non sia l'ultimo carattere e che anche questo non compaia due o più volte consecutivamente (ad es. John..Doe @ example.com).

http://en.wikipedia.org/wiki/E-mail_address#RFC_specification

Non sto chiedendo come prevenire questi attacchi (sto già utilizzando query parametrizzate e fuggire/depuratore HTML), questo è più un proof-of-.

La prima cosa che mi è venuta in mente è stata 'OR [email protected], tranne che gli spazi non sono consentiti. Tutte le iniezioni SQL richiedono spazi?

risposta

12

spazi sono consentiti se sono racchiusi tra virgolette, tuttavia, in modo "'OR 1=1--"@gmail.com è un indirizzo e-mail valido. Inoltre, è probabilmente meno di una preoccupazione, ma tecnicamente parlando, questi sono entrambi gli indirizzi di posta elettronica validi:

' BAD SQL STUFF -- <[email protected]> 
[email protected] (' BAD SQL STUFF --) 

Anche se questo non era possibile, non c'è ancora alcuna ragione per cui non si dovrebbe usare query parametrizzato e codifica tutti i dati immessi dall'utente visualizzati agli utenti.

+0

È possibile utilizzare http://isemail.info/ per verificare la presenza di qualsiasi indirizzo e-mail, o semplicemente testare con un filtro su indirizzi e-mail iniettabili tramite alcune funzioni php come il filtro di convalida della posta elettronica. In base a isemail.info, il primo indirizzo non è valido e il secondo indirizzo è "L'indirizzo è valido all'interno del messaggio ma non può essere utilizzato non modificato per la busta" – Kzqai

-5
/^[a-z0-9.-_+]@[a-z0-9.-]$/i 

Penso che corrisponde come 99,9999% di tutti gli indirizzi email;)

+1

btw. Questo è solo per verificare se il testo non è pieno di iniezioni xss/sql ecc. - non è un modo per convalidare un indirizzo email. – Tobias

Problemi correlati