Надо ли что-то еще делать для избежания SQL инъекций?

Да, для избежания SQL инъекций важно предпринять дополнительные меры помимо использования языка программирования Python.

Вот несколько советов по тому, что можно сделать:

1. Используйте параметризованные запросы: при выполнении SQL-запросов используйте параметры вместо конкатенации строк, чтобы передавать пользовательский ввод. Например, вместо написания запроса вида "SELECT * FROM users WHERE username = '" + username + "'", лучше использовать параметр, такой как "SELECT * FROM users WHERE username = %s" и передавать значение username как параметр к выполнению запроса. Это позволяет базе данных правильно обработать введенные данные и предотвратить потенциальные атаки.

2. Используйте библиотеки для работы с базами данных, которые предоставляют встроенные механизмы защиты от SQL инъекций. Например, такие библиотеки, как SQLAlchemy, Django ORM или psycopg2 для работы с PostgreSQL, автоматически предотвращают SQL-инъекции через защиту по умолчанию, используя параметризованные запросы или применяя экранирование специальных символов.

3. Обязательно проверяйте и проверяйте входные данные: перед использованием пользовательского ввода в SQL-запросах, удостоверьтесь, что данные соответствуют ожидаемому формату и содержат только допустимые символы. Например, вы можете использовать регулярные выражения для проверки формата email адреса или числа, прежде чем вычислять значения для SQL-запроса.

4. Ограничивайте права доступа к базе данных: убедитесь, что учетная запись базы данных, используемая вашей программой, имеет только необходимые права доступа к базе данных и таблицам. Необходимо ограничить возможность создания, изменения схемы базы данных и других действий, если этого не требуется.

5. Мониторинг и логирование: ведите журналы всех SQL-запросов, выполняемых вашим приложением, и мониторьте любые аномалии или попытки внедрения SQL-инъекций. Правильный мониторинг может помочь вовремя обнаружить и предотвратить подобные атаки.

В целом, важно учитывать, что избегание SQL инъекций - это комбинация нескольких мер, включая использование параметризованных запросов, экранирование специальных символов, проверка и проверка входных данных, ограничение прав доступа и мониторинг.