\")\n \n В шаблонизаторах (Jinja2, Django Templates) экранирование включено по умолчанию. \n\n3. **Shell-инъекции**: \n import subprocess\n subprocess.run([\"ls\", \"-l\", user_input]) # Безопасно \n \n Избегайте `shell=True` и передавайте аргументы списком. \n\n4. **Валидация и санация данных**: \n Используйте библиотеки (`bleach` для HTML, `pydantic` для валидации). \n\n5. **CSP (Content Security Policy)** — защита от XSS на уровне браузера. \n\n**Ключевое правило**: Никогда не доверяйте пользовательскому вводу!","author":{"@type":"Organization","name":"Young&Junior","url":"https://youngjunior.ru"},"url":"https://youngjunior.ru/python/interviews/10345"}}}
Встречается на 1% собеседований по Python

Какие подходы используются для защиты от инъекций

В Python для защиты от инъекций (SQL, XSS, shell-инъекций) применяют:

  1. Параметризованные запросы (SQL):
    python
    cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
    Используйте ORM (Django ORM, SQLAlchemy) — они автоматически экранируют данные.
  1. Экранирование HTML (XSS):

    python
    from markupsafe import escape
    escaped = escape("<script>alert('XSS')</script>")

    В шаблонизаторах (Jinja2, Django Templates) экранирование включено по умолчанию.

  2. Shell-инъекции:

    python
    import subprocess
    subprocess.run(["ls", "-l", user_input])  # Безопасно  

    Избегайте shell=True и передавайте аргументы списком.

  3. Валидация и санация данных:
    Используйте библиотеки (bleach для HTML, pydantic для валидации).

  4. CSP (Content Security Policy) — защита от XSS на уровне браузера.

Ключевое правило: Никогда не доверяйте пользовательскому вводу!

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

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

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

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