由于电子邮件地址有很多有效字符,是否有任何有效的电子邮件地址本身可以是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注入都需要空格吗?
如果用引号括起来,则允许使用空格,但"'OR 1=1--"@gmail.com
有效的电子邮件地址也是如此.此外,它可能不是一个问题,但从技术上讲,这些都是有效的电子邮件地址:
' BAD SQL STUFF --fake@ryanbrunner.com (' BAD SQL STUFF --)
即使这是不可能的,仍然没有理由不使用参数化查询并对显示给用户的所有用户输入数据进行编码.