怎么有人绕过mysql转义字符串?

时间:2015-08-30 12:49:52

标签: php mysqli sql-injection mysql-real-escape-string

我在代码中使用了mysql转义字符串。我正在收集电子邮件地址并将其存储在数据库中。这是我使用的转义字符串函数。

mysqli_real_escape_string($connection, $_POST['data'])

但我今天查看了数据库,发现有人能够插入诸如" C:/ Windows / xyz",SQL查询等内容。这些已包含在数据库中。这是怎么回事,即使HTML不允许您输入除正确的电子邮件地址之外的任何内容?

1 个答案:

答案 0 :(得分:-1)

清理和验证变量之间存在巨大差异。卫生为您的数据库操作提供了sql-safe变量,但没有人说用户不能在您的表单上订购“fleventy”啤酒。

如果您要验证正确的电子邮件地址字符串您可以使用filter_var($_REQUEST["email"], FILTER_VALIDATE_EMAIL)功能。