TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #2596 4.94K
​LiteralString: Защита от SQL-инъекций

Внутрь текста (например, в поле формы) можно внедрить SQL-запрос и видоизменить базу данных. Начиная с Python 3.11 мы можем использовать LiteralString во избегание таких уязвимостей:

def caller(
arbitrary_string: str,
query_string: LiteralString,
table_name: LiteralString,
) -> None:
run_query("SELECT * FROM students") # ok
run_query(query_string) # ok
run_query("SELECT * FROM " + table_name) # ok
run_query(arbitrary_string) # error
run_query(f"SELECT * FROM students WHERE name = {arbitrary_string}" # error
)

Спасибо подписчику @Trizalio за годную тему для поста.

#лучшиепрактики
  • 👍 9
More from @zen_of_python
  1. Oct 11, 2026Почему копия контекста не делает словарь отдельным contextvars помогает хранить request ID…
  2. Oct 11, 2026Почему короткие паузы сборщика мусора обходятся памятью В CPython подсчёт ссылок освобожда…
  3. Oct 11, 2026Как проверить, что мок заменил нужную зависимость Если service.py делает from client impor…
  4. Oct 10, 2026Post #5048
  5. Oct 10, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  6. Oct 10, 2026Почему max_workers не ограничивает очередь задач ThreadPoolExecutor(max_workers=8) разреша…
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 →