На этом уроке мы сделаем бекап базы данных, затем продемонстрируем «взлом» страницы посредством SQL-инъекции, покажем, как от этого защититься и потом восстановим базу данных.
Дата отправки отчёта:
24 мая 2018 г.
Задание выполнено: за
1 час. 38 мин.
Чему научился:
Отличный урок. Слышал о понятии SQL инъекции но как то не сталкивался.... Очень поучительный материал в данном занятии. Евгению и Валерию спасибо за столь подробное и понятное объяснение. По итогу, узнал, что такое SQL инъекция. На практике попробовал как это работает. Восстановив БД сделал защиту для id (экранирование как в видео к уроку). Поиграл отладчиком после этого. Посмотрел какие значения и во что преобразуются. Сделал защиту от самой распространенной SQL инъекции)))
Что было сложным:
Посмотрел видео, - вроде все понятно. Начал реализовывать - как всегда куча ошибок и вопросов ))) Но в итоге все разобрал.
Вот так, по крупицам, на этом проекте и попадаются частички реального опыта использования знаний в реальных проектов. До прохождения курса я даже и не слышал такого термина "sql-инъекции". Зато после него тема заинтересовала и я полез читать. На базовое понятие из этого урока остальной материал отлично заходит - рекомендую!
Научился: Интересно, что у меня при таком же, как в уроке, запросе, в ответ просто приходит ошибка, а не история по номеру в начале "инъекции". Видимо, какая-то разница в реализации MySQL и MSSQL.
Конечно, если н епредусмотреть защиту от SQL-инъекций, то возможности для злоумышленника поистине безграничны :) Интересно почитать на эту тему, потому что подозреваю, что одной такой предосторожности, как в уроке, явно недостаточно.
Научился: Сделалал бекап базы данных двумя способами
Написал в адресной строке браузера SQL-инъекцию
Убедился, что она сработала: записи из таблицы удалены
Добавил в модель MySQL функцию addslashes()
Проверил, что SQL-инъекция не проходит
Восстановил базу данных из бекапа
Трудности: все понятно, интересная тема.
В какую сторону нужно копать, чтобы разобраться с одинарными ковычками и слешами в представлении SQL запроса в коде?