Da es so viele gültige Zeichen für E-Mail-Adressen gibt, gibt es gültige E-Mail-Adressen, die XSS-Angriffe oder SQL-Injektionen sein können? Ich konnte keine Informationen dazu im Internet finden.
Der lokale Teil der E-Mail-Adresse kann eines dieser ASCII-Zeichen verwenden:
- Groß- und Kleinbuchstaben (a-z, A-Z)
- Ziffern 0 bis 9
- Charaktere! # $% & amp; '* + - / =? ^ _ '{| } ~
- Charakter. (Punkt, Punkt, Punkt) vorausgesetzt, dass es nicht der letzte ist Zeichen, und vorausgesetzt, dass es nicht erscheint zwei oder mehrere Male hintereinander (z. B. John..Doe @ example.com).
Ich frage nicht, wie ich diese Angriffe verhindern kann (ich verwende bereits parametrisierte Abfragen und Escaping / HTML-Filter), dies ist eher ein Proof-of-Concept.
Das erste, was mir in den Sinn kam, war 'OR [email protected]
, außer dass Leerzeichen nicht erlaubt sind. Benötigen alle SQL-Injektionen Leerzeichen?
Leerzeichen sind zulässig, wenn sie in Anführungszeichen stehen, also ist "'OR 1=1--"@gmail.com
eine gültige E-Mail-Adresse. Außerdem ist es wahrscheinlich weniger problematisch, aber technisch betrachtet sind dies beide gültige E-Mail-Adressen:
Auch wenn dies nicht möglich war, gibt es immer noch keinen Grund, dass Sie keine parameterisierten Abfragen verwenden und alle vom Benutzer eingegebenen Daten codieren sollten, die den Benutzern angezeigt werden.
Tags und Links php xss sql-injection email-validation