Встречается на собеседованиях • сегодня

Приведи пример SQL инъекции

SQL-инъекция — это уязвимость, возникающая, когда пользовательский ввод напрямую подставляется в SQL-запрос без обработки. Это позволяет злоумышленнику выполнить произвольный SQL-код.

Пример уязвимого кода на Python с SQLite:

python
username = input("Введите имя пользователя: ")
query = f"SELECT * FROM users WHERE username = '{username}'"
cursor.execute(query)

Атака:
Если злоумышленник введет ' OR '1'='1, запрос превратится в:

sql
SELECT * FROM users WHERE username = '' OR '1'='1'

Это вернет все записи из таблицы users, так как условие '1'='1' всегда истинно.

Защита:
Используйте параметризованные запросы:

python
query = "SELECT * FROM users WHERE username = ?"
cursor.execute(query, (username,))

Это исключает возможность инъекции, так как ввод обрабатывается как данные, а не часть SQL-кода.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы