Допустимые адреса электронной почты-XSS и SQL Injection
поскольку существует так много допустимых символов для адресов электронной почты, есть ли какие-либо действительный адреса электронной почты, которые сами по себе могут быть атаками XSS или SQL-инъекциями? Я не смог найти никакой информации об этом в интернете.
локальная часть адреса электронной почты может использовать любой из этих символов ASCII:
- заглавные и строчные английские буквы (a–z, A–Z)
- цифры от 0 до 9
- символы ! # $ % & ' * + - / = ? ^ _ ' { / } ~
- символ . (точка, точка, полная остановка) при условии, что она не последняя характер, и при условии также, что он не появляется два или больше раз подряд (например John..Doe@example.com).
http://en.wikipedia.org/wiki/E-mail_address#RFC_specification
Я не спрашиваю, как предотвратить эти атаки (Я уже использую параметризованные запросы и экранирование / очиститель HTML), это скорее доказательство концепции.
первое, что пришло на ум был 'OR 1=1--@gmail.com
, за исключением того, что пробелы не допускаются. Все SQL-инъекции требуют пробелов?
2 ответов
пробелы допускаются, если они заключены в кавычки, однако, so "'OR 1=1--"@gmail.com
- это действительный адрес электронной почты. Кроме того, это, вероятно, меньше беспокоит, но технически говоря, это действительные адреса электронной почты:
' BAD SQL STUFF -- <fake@ryanbrunner.com>
fake@ryanbrunner.com (' BAD SQL STUFF --)
даже если это было невозможно, по-прежнему нет причин, по которым вы не должны использовать параматериализованные запросы и кодировать все введенные пользователем данные, отображаемые пользователям.