Как кто-то может обойти 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)
функция.