Как кто-то может обойти escape-строку mysql?

Я использовал mysql escape-строку в своем коде. Я брал адреса электронной почты и сохранял их в базе данных. Это функция escape-строки, которую я использовал.

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

Но сегодня я просмотрел базу данных и обнаружил, что кто-то смог вставить такие вещи, как "C:/Windows/xyz", SQL-запросы и т. Д. Они были включены в базу данных. Как это происходит, даже если HTML не позволяет вам вводить что-либо, кроме правильного адреса электронной почты?

1 ответ

Решение

Существует огромная разница между очисткой и проверкой переменных. Санитария предоставляет вам sql-безопасные переменные для ваших операций с базой данных, но никто не сказал, что пользователь не может заказывать "мимолетное" пиво над вашей формой.

Если вы хотите проверить правильность строки адреса электронной почты, вы можете использовать filter_var($_REQUEST["email"], FILTER_VALIDATE_EMAIL) функция.

Другие вопросы по тегам