infra: надёжное обнаружение тестов, Redis-кэш и хардненинг прода
- AcoreDiscoverRunner собирает tests/tests_* всех локальных приложений (manage.py test находил 38 тестов из ~466 — теперь все). - CACHES на Redis (отдельная DB от Celery) + обязательный requirepass в production, SECURE_HSTS_PRELOAD. - Фикс stored-XSS в админке: format_html вместо mark_safe + f-string. - Утилиты безопасности/тестов, шифрование полей. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
import logging
|
||||
|
||||
from django.db import models
|
||||
|
||||
from core.utils.crypto import encrypt_secret, decrypt_secret
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class EncryptedCharField(models.CharField):
|
||||
"""CharField, который хранит значение в БД в зашифрованном виде (Fernet).
|
||||
@@ -27,4 +31,8 @@ class EncryptedCharField(models.CharField):
|
||||
return decrypt_secret(value)
|
||||
except Exception:
|
||||
# Значение записано до включения шифрования — вернуть как есть.
|
||||
logger.warning(
|
||||
'EncryptedCharField: decrypt failed, returning raw DB value '
|
||||
'(check FIELD_ENCRYPTION_KEY rotation)'
|
||||
)
|
||||
return value
|
||||
|
||||
Reference in New Issue
Block a user