TGViewer
Python/ django Python/ django @pythonl · 58.7K subscribers
Post #5395 9.05K
В Python 3.14 появилось решение, которое помогает избавиться от SQL-инъекций - t-strings 🔒

Проблема

Когда вы используете f-strings для SQL:


query = f"SELECT * FROM users WHERE name = '{user_input}'"

пользовательский ввод напрямую попадает в запрос.

Если злоумышленник передаст:


admin'; DROP TABLE users; --

— база выполнит вредоносную команду.

Это классическая SQL injection.

Почему это неудобно сейчас

Безопасный способ — параметризованные запросы:


cursor.execute(
"SELECT * FROM users WHERE name = %s",
(user_input,)
)

Но приходится:

• запускать шаблон отдельно
• передавать значения отдельно
• поддерживать две структуры

Что изменилось в Python 3.14

Появились template string literals (t-strings).

В отличие от f-strings, они:

• не возвращают готовую строку

• возвращают объект Template

• отдельно хранят текст и подставленные значения

Пример:

query = t"SELECT * FROM users WHERE name = {user_input}"


Теперь можно:

• получить все интерполяции
• проверить значения
• экранировать или валидировать их
• и только потом собрать финальный SQL


safe = safe_sql(query)

Результат:

• вредоносный ввод очищается
• SQL-инъекции блокируются
• таблицы остаются на месте

Почему это важно

f-strings - быстрые, но опасные для SQL.

t-strings позволяют сохранить удобство шаблонов и добавить контроль безопасности.

Python движется к безопасным шаблонам по умолчанию, меньше ручной защиты, меньше уязвимостей в продакшене.

📲Max

@pythonl
  • 🔥 24
  • 👍 7
  • ❤ 3
  • 😢 1
More from @pythonl
  1. Sep 27, 2026🐍 В Python 3.15 решили мягко «похоронить» re.match() re.match() никуда не удаляют, но для…
  2. Sep 26, 2026⚡️ Qwen-Image за 6 шагов: Viggle ускорили генерацию и редактирование в 5 раз Viggle выложи…
  3. Sep 25, 2026🖥 Заголовки безопасности для FastAPI - одной строкой 🛡️ fastapi-security-headers добавля…
  4. Sep 24, 2026Линтер для инструкций ИИ-агентов LintLang проверяет AGENTS.md, CLAUDE.md, SKILL.md, описан…
  5. Sep 24, 2026‼️Ваши данные уже слиты. Вопрос лишь в том, кто и как ими воспользуется. Только в 2025 год…
  6. Sep 24, 2026⚡️ OmniVoice - открытая модель озвучки с поддержкой более 600 языков. Она умеет клонироват…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →