我在代码中使用了mysql转义字符串。我正在收集电子邮件地址并将其存储在数据库中。这是我使用的转义字符串函数。
mysqli_real_escape_string($connection, $_POST['data'])
但我今天查看了数据库,发现有人能够插入诸如" C:/ Windows / xyz",SQL查询等内容。这些已包含在数据库中。这是怎么回事,即使HTML不允许您输入除正确的电子邮件地址之外的任何内容?
答案 0 :(得分:-1)
清理和验证变量之间存在巨大差异。卫生为您的数据库操作提供了sql-safe变量,但没有人说用户不能在您的表单上订购“fleventy”啤酒。
如果您要验证正确的电子邮件地址字符串您可以使用filter_var($_REQUEST["email"], FILTER_VALIDATE_EMAIL)
功能。