tak, prawidłowy adres e-mail może być używany jako pojemnik dla niektórych starannie spreparowanych ciągów.
wydostań się z myślenia "filtrującego" i weź w "ucieczkę". Uniwersalny filtr "make it safe" po prostu nie istnieje.
na przykład, jeśli adres e-mail zostanie wyświetlony jako zwykły dokument tekstowy, nic nie będzie potrzebne. jeśli jest on wyprowadzany do dokumentu html, jako węzeł tekstowy, musi zostać zmieniony na Escape dla znaków specjalnych html i uprawnia. jeśli zostanie on umieszczony w dokumencie HTML, a jego wartość znajdzie się wewnątrz atrybutu html, wówczas trzeba będzie wykonać bardzo ostrożne unikanie i będzie to zależało od kontekstu. jeśli jest używany w kwerendzie sql, to musi zostać zmieniona przez specyficzną dla bazy danych funkcję ucieczki. i tak dalej.
to wszystko na temat kontekstu użycia, a nie zawartości ciągu. dotyczy to wszystkiego (nie tylko wiadomości e-mail lub innego wkładu użytkownika), a nie tylko kwestia bezpieczeństwa, ale jest to kwestia poprawności programowania.
fyi, pamiętam specyfikację adresu e-mail zezwalającą na cytowane ciągi, więc coś w rodzaju "<script>alert('xss')</script>"@example.com
byłoby ważne. możliwości są oczywiste.
Na przykład, nie ma też uniwersalnego" bezpiecznego "powitania. To, co w niektórych społeczeństwach jest grzeczne, w innych jest niegrzeczne. Poznaj swój kontekst! – Xeoncross
+1. FILTER_VALIDATE_EMAIL służy do sprawdzania, czy adresy e-mail są poprawne i jak pokazuje powyższy przykład, nie ma to nic wspólnego z żadnym innym problemem dotyczącym iniekcji. Gdyby to * miało * blokować cytaty lub mniej niż wtedy, byłoby to tylko przez współwystępowanie i nie byłoby czymś, na czym powinieneś polegać. – bobince