Я просто создаю регистрационную форму, и я ищу только вставить в базу данных достоверные и безопасные электронные письма.
Несколько сайтов (в том числе w3schools) рекомендуют запускать FILTER_SANITIZE_EMAIL, прежде чем запускать FILTER_VALIDATE_EMAIL, чтобы быть в безопасности, однако это может изменить отправленное письмо с недопустимым в действительное электронное письмо, которое не может быть тем, что нужно пользователю, например:
Пользователь имеет адрес электронной почты [email protected], но случайно вставляет jeff "@gmail.com.
FILTER_SANITIZE_EMAIL удалит сообщение электронной почты [email protected], которое FILTER_VALIDATE_EMAIL будет прав, даже если оно не является фактическим адресом электронной почты пользователей.
Чтобы избежать этой проблемы, я планирую запустить только FILTER_VALIDATE_EMAIL. (предполагая, что я не планирую выводить/обрабатывать любые сообщения, объявленные недействительными)
Это скажет мне, действительно ли письмо является действительным, если это так, то не должно быть необходимости передавать его через FILTER_SANITIZE_EMAIL, потому что любые незаконные/небезопасные символы уже заставили бы электронное письмо быть возвращенным недействительным, правильно?
Я также не знаю ни одной электронной почты, одобренной как действительная с помощью FILTER_VALIDATE_EMAIL, которая может быть использована для инъекции /xss из-за того, что белые пробелы, круглые скобки() и полуколоны недействительны для электронной почты. Или я не прав?
(примечание: я буду использовать готовые инструкции для вставки данных в дополнение к этому, я просто хотел прояснить это)