Foro: editor CKEditor 5 en los mensajes y moderación por POST+CSRF
- forum/forms.py: TopicForm/ReplyForm/EditPostForm con CKEditor5Widget (rich text) - vistas crear/responder/editar pasan el form; el HTML del editor se sanea con nh3 - acciones de moderación (bloquear, fijar, mover, borrar/restaurar temas y posts) ahora exigen POST y van con CSRF; las plantillas usan formularios en vez de enlaces GET - docs/FORO.md actualizado Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-7
@@ -46,10 +46,16 @@ en `forum/permissions.py`:
|
||||
- El texto de los posts se **sanea con `nh3`** (allowlist de etiquetas) al
|
||||
guardar — `forum/sanitize.py` — evitando el XSS que tenía el original (que
|
||||
renderizaba HTML del editor sin filtrar). Se renderiza con `|safe` ya saneado.
|
||||
- Formularios de publicar/responder/editar/mover van por **POST con CSRF**.
|
||||
- ⚠️ Pendiente de endurecer: las acciones de moderación (bloquear, borrar,
|
||||
restaurar, fijar) son enlaces **GET** (como en el original). Para producción se
|
||||
recomienda pasarlas a POST con CSRF.
|
||||
- **Todas** las acciones que modifican datos (publicar, responder, editar, mover,
|
||||
bloquear/desbloquear, fijar, borrar/restaurar temas y posts) van por **POST con
|
||||
CSRF**. Las vistas de moderación rechazan GET.
|
||||
|
||||
## Editor
|
||||
|
||||
Los mensajes se escriben con **CKEditor 5** (el mismo editor que usa el resto de
|
||||
NovaWoW), vía `forum/forms.py` (`TopicForm`, `ReplyForm`, `EditPostForm`). El
|
||||
HTML que produce el editor se **sanea con nh3** al guardar, así que el rich text
|
||||
es seguro.
|
||||
|
||||
## Despliegue
|
||||
|
||||
@@ -70,8 +76,5 @@ en `forum/permissions.py`:
|
||||
|
||||
## Notas / posibles mejoras
|
||||
|
||||
- Editor enriquecido (CKEditor/TinyMCE) en el textarea de posts (ahora es
|
||||
texto/HTML saneado; los saltos de línea se respetan por CSS `pre-wrap`).
|
||||
- El autor se muestra como el nombre de cuenta de juego (`<bnetId>#1`); se podría
|
||||
mapear a un nick o al email como en «Mi cuenta».
|
||||
- Endurecer las acciones de moderación a POST+CSRF.
|
||||
|
||||
Reference in New Issue
Block a user