Php 有效的电子邮件地址-XSS和SQL注入
由于电子邮件地址有如此多的有效字符,是否有任何有效的电子邮件地址本身可能是XSS攻击或SQL注入?我在网上找不到关于这个的任何信息 电子邮件地址的本地部分 可以使用以下任一ASCII字符:Php 有效的电子邮件地址-XSS和SQL注入,php,xss,sql-injection,email-validation,Php,Xss,Sql Injection,Email Validation,由于电子邮件地址有如此多的有效字符,是否有任何有效的电子邮件地址本身可能是XSS攻击或SQL注入?我在网上找不到关于这个的任何信息 电子邮件地址的本地部分 可以使用以下任一ASCII字符: 大写和小写英文字母(a-z,a-z) 数字0至9 字符!#$%&'*+-/=?^#{|}~ 性格。(点、句号、句号)但前提是它不是最后一个 字符,并且前提是它不出现两个或两个以上的字符 连续多次(如约翰.)。。Doe@example.com) 我不是问如何防止这些攻击(我已经在使用参数化查询和转义/HT
- 大写和小写英文字母(a-z,a-z)
- 数字0至9
- 字符!#$%&'*+-/=?^#{|}~
- 性格。(点、句号、句号)但前提是它不是最后一个 字符,并且前提是它不出现两个或两个以上的字符 连续多次(如约翰.)。。Doe@example.com)
”或1=1--@gmail.com
,除了空格是不允许的。所有SQL注入都需要空格吗
/^[a-z0-9.-_+]@[a-z0-9.-]$/i
我认为这与99.9999%的电子邮件地址相匹配;) 如果空格用引号括起来,则允许使用空格,因此
“'或1=1--”@gmail.com
是一个有效的电子邮件地址。另外,这可能不太重要,但从技术上讲,这两个都是有效的电子邮件地址:
' BAD SQL STUFF -- <fake@ryanbrunner.com>
fake@ryanbrunner.com (' BAD SQL STUFF --)
'糟糕的SQL内容--
fake@ryanbrunner.com(“糟糕的SQL内容--”)
即使这是不可能的,你也没有理由不使用参数化查询和编码所有显示给用户的用户输入数据。btw。这只是为了验证文本是否包含xss/sql注入等-这不是验证电子邮件地址的方法。可以使用来检查你喜欢的任何电子邮件地址,或者只需通过一些php函数(如filter validate email)在可注入电子邮件地址上使用过滤器进行测试。根据isemail.info,第一个地址无效,第二个地址为“地址在邮件中有效,但未经修改不能用于信封”