SQL-инъекция происходит, когда пользовательский ввод напрямую вставляется в SQL-запрос без соответствующей фильтрации или экранирования. Злоумышленник может передать вредоносный SQL-код, который изменит поведение запроса. Допустим, у нас есть веб-форма для входа в систему: username = input("Введите имя пользователя: ")
password = input("Введите пароль: ")
query = f"SELECT * FROM users WHERE username = '{username}' AND password = '{password}'" Если пользователь введёт: ' OR '1'='1 Запрос примет следующий вид: SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '' Так как '1'='1' всегда истинно, злоумышленник сможет войти без пароля. 🔹 Вывод всех данных из таблицы SELECT * FROM users WHERE username = '' OR 1=1 --; Этот запрос вернёт все данные из таблицы users, так как 1=1 всегда истинно. 🔹 Получение структуры базы данных SELECT column_name FROM information_schema.columns WHERE table_name = 'users'; Этот запрос выдаст все названия колонок таблицы users, что позволит ат