Встречается на собеседованиях • сегодня

Как улучшить безопасность кода проекта

  1. Валидация ввода: Всегда проверяйте пользовательский ввод, используя библиотеки типа re для регулярных выражений или pydantic для валидации данных.
python
from pydantic import BaseModel

class UserInput(BaseModel):
    username: str
    password: str  # Должен быть хеширован
  1. Используйте ORM вместо сырых SQL-запросов для предотвращения SQL-инъекций.
python
# Плохо:
cursor.execute(f"SELECT * FROM users WHERE login = '{user_input}'")

Хорошо:

session.query(User).filter(User.login == user_input).first()

text

3. **Хешируйте пароли** с помощью `bcrypt` или `argon2`.  
```python
import bcrypt

hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
  1. Ограничивайте права зависимостей: Проверяйте requirements.txt через safety или pip-audit.

  2. Используйте HTTPS, защищайте куки (Secure, HttpOnly, SameSite).

  3. Логируйте безопасно: Удаляйте чувствительные данные из логов.

  4. Регулярно обновляйте зависимости для закрытия уязвимостей.

  5. Настройте CORS для API, чтобы ограничить источники запросов.

  6. Применяйте принцип минимальных привилегий для сервисов и пользователей.

  7. Тестируйте безопасность: Используйте bandit для статического анализа и OWASP ZAP для динамического.

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

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

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

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