php - 有效的电子邮件地址 - XSS 和 SQL 注入(inject)

标签 php xss sql-injection email-validation

由于电子邮件地址有这么多有效字符,是否有任何有效电子邮件地址本身可能是 XSS 攻击或 SQL 注入(inject)?我在网上找不到这方面的任何信息。

The local-part of the e-mail address may use any of these ASCII characters:

  • Uppercase and lowercase English letters (a–z, A–Z)
  • Digits 0 to 9
  • Characters ! # $ % & ' * + - / = ? ^ _ ` { | } ~
  • Character . (dot, period, full stop) provided that it is not the last character, and provided also that it does not appear two or more times consecutively (e.g. John..Doe@example.com).

http://en.wikipedia.org/wiki/E-mail_address#RFC_specification

我不是在问如何防止这些攻击(我已经在使用参数化查询和转义/HTML 净化器),这更像是一个概念验证。

首先想到的是'OR 1=1--@gmail.com,只是不允许有空格。所有 SQL 注入(inject)都需要空格吗?

最佳答案

但是,如果用引号括起来,则允许使用空格,因此 "'OR 1=1--"@gmail.com 是一个有效的电子邮件地址。此外,这可能不是什么大问题,但从技术上讲,这些都是有效的电子邮件地址:

' BAD SQL STUFF -- <fake@ryanbrunner.com>
fake@ryanbrunner.com (' BAD SQL STUFF --)

即使这不可能,您仍然没有理由不使用参数化查询并对所有显示给用户的用户输入数据进行编码。

关于php - 有效的电子邮件地址 - XSS 和 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923594/

相关文章:

php - 为什么我的 sql 查询不能返回正确的请求?

javascript - 减轻来自提交数据的 XSS 攻击 - < 字符是所有攻击的核心吗?

javascript - iframe跨域获取CSS

python - 是否有可能使用 Python 标准库(比如 2.5 版)执行参数化的 MS-SQL 查询?

ios - 验证来自 SQL 注入(inject) objective-c 的输入

php 谜语 - 有趣的结果

php - Cookie 过期时间

javascript - 让用户上传和运行 Javascript 有什么风险

sql-server - 仅使用替换作为预防的 SQL Server 的 SQL 注入(inject)问题的真实示例?

PHP 变量不适用于高度和宽度