Что такое SQL-инъекция

Python Middle Без компании
Что такое SQL-инъекция
Ответы
SQL-инъекция — это уязвимость, возникающая при неправильной обработке пользовательского ввода, который затем используется в SQL-запросах. Злоумышленник может внедрить вредоносный SQL-код, что приведёт к несанкционированному доступу или изменению данных. Пример уязвимого кода на Python с SQLite: ``` username = input("Enter username: ") query = f"SELECT * FROM users WHERE username = '{username}'" cursor.execute(query) ``` Если ввести `' OR '1'='1`, запрос станет: ``` SELECT * FROM users WHERE username = '' OR '1'='1' ``` Это вернёт все записи из таблицы users. **Как защититься:** - Используйте параметризованные запросы: ``` cursor.execute("SELECT * FROM users WHERE username = ?", (username,)) ``` - Применяйте ORM (например, SQLAlchemy) - Валидируйте и экранируйте пользовательский ввод - Ограничивайте права доступа БД