Урок 19 / 22 · Commentail 1.3.2
Перед открытием комментариев проверьте не только страницу на localhost, но и путь запроса через настоящий домен, HTTPS и прокси. Настройка ниже подходит лишь для схемы «публичный nginx → Django на loopback». Для CDN или нескольких прокси нужна проверка всей цепочки.
IP за одним nginx
Пример фрагмента существующей nginx-конфигурации:
# Example: nginx is the only public edge; Django listens on loopback.
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://127.0.0.1:8000;
}
В этом варианте nginx перезаписывает forwarded IP адресом реального клиента, а не доверяет заголовку, присланному посетителем. Django-порт не должен быть доступен снаружи. В settings:
COMMENTAIL = {"default": {"TRUSTED_PROXIES": ["127.0.0.1/32"]}}
# Set only when your controlled proxy overwrites this header and direct access is blocked.
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
127.0.0.1/32 подходит только если именно этот адрес — фактический peer приложения. Для контейнера, Unix socket или удалённого балансировщика настройка будет другой. Не доверяйте 0.0.0.0/0 или ::/0. Не включайте SECURE_PROXY_SSL_HEADER, если не контролируете перезапись заголовка и прямой доступ к backend.
После изменения проверьте синтаксис nginx штатным способом и перезагрузите конфигурацию по процедуре сервера. Через реальный домен убедитесь, что два разных клиента получают свои IP-квоты и что поддельный X-Forwarded-For не подменяет адрес. manage.py check не проверяет реальную сетевую схему.
Кеширование
Формы, собственные ожидающие карточки и recent-списки зависят от пользователя. Сохраняйте CapabilityHeadersMiddleware и Cache-Control: private, no-store. Исключите эти ответы из общего page/CDN cache; Vary без корректной политики не делает общий кеш безопасным. Не используйте secret action URL как обычные ссылки аналитики.
Данные и доступ
Почта гостя не публикуется, но обрабатывается сайтом и выбранным почтовым сервисом. Внешняя CAPTCHA также передаёт данные провайдеру. Опишите фактическую обработку и сроки хранения для своего сайта; установка пакета сама по себе не определяет правовую политику.
Удаление учётной записи отменяет связанную почту/подписки и удаляет сохранённый адрес из комментариев; текст может остаться с обозначением удалённого автора. Опубликованные комментарии не исчезают автоматически по сроку временных токенов. Резервные копии и старые экспорты требуют собственной политики.
Приёмка
Проверьте два браузера, гостя и аккаунт, закрытую Page, другой Site, модерацию и правку; затем реальные темы, узкий экран, клавиатуру и допустимый no-JS путь. Отдельно пройдите почту от отправки до отписки. Следите за возрастом очереди и отказами worker, ограничивайте и очищайте логи от защищённых URL. Учебный runserver и DEBUG не переносите в production.
Другие уроки по этой задаче
- 8. Настраиваем обработчик писем и очистки
- 20. Обновление и восстановление Commentail
- 21. Что делать, если комментарии не работают
Выберите способ входа или оставьте комментарий как гость ниже.