Foro: correcciones de la revisión de seguridad y correctitud
- CSRF real en las vistas mutadoras con @csrf_protect (el middleware global no estaba activo; verificado: POST sin token -> 403). Se documenta el hueco global. - bloquea acceso a temas de foros ocultos/borrados por URL directa (view_topic y reply) - conteo de posts respeta borrados para moderadores (paginación correcta) - tema bloqueado impide editar/borrar posts a no-moderadores (_topic_locked_for) - moderador ve el formulario de respuesta en temas bloqueados (can_reply) - filtro forum_safe: sanea el HTML también al renderizar (defensa en profundidad) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+3
-2
@@ -183,10 +183,11 @@ def get_topic(topic_id, include_hidden=False):
|
||||
return topic
|
||||
|
||||
|
||||
def count_posts(topic_id):
|
||||
def count_posts(topic_id, include_deleted=False):
|
||||
delf = "" if include_deleted else "AND deleted = 0"
|
||||
with _conn().cursor() as cursor:
|
||||
cursor.execute(
|
||||
"SELECT COUNT(*) FROM forum_posts WHERE topic_id = %s AND deleted = 0",
|
||||
f"SELECT COUNT(*) FROM forum_posts WHERE topic_id = %s {delf}",
|
||||
[topic_id],
|
||||
)
|
||||
return cursor.fetchone()[0]
|
||||
|
||||
Reference in New Issue
Block a user