El mayor portal de MU Online de Brasil — desde 2003
Tutorial Intermedio Web

Cómo crear un sistema de comentarios moderado para el sitio de MU Online

Implementa un sistema de comentarios moderado en el sitio de tu servidor de MU Online, con cola de aprobación, filtro antispam, denuncia de la comunidad y reglas claras de moderación para noticias, rankings y perfiles.

RO Rodrigo · Actualizado el 7 ago 2024 · ⏱ 13 min de lectura
Respuesta rápida

Los comentarios abren un espacio valioso para que la comunidad reaccione a las noticias, discuta rankings e interactúe en los perfiles de jugadores — pero sin una moderación adecuada, se convierten rápidamente en escenario de spam, flame wars entre guilds y ataques personales. Un sistema de comentar

Los comentarios abren un espacio valioso para que la comunidad reaccione a las noticias, discuta rankings e interactúe en los perfiles de jugadores — pero sin una moderación adecuada, se convierten rápidamente en escenario de spam, flame wars entre guilds y ataques personales. Un sistema de comentarios moderado bien diseñado equilibra apertura (la comunidad se siente escuchada) con control (el equipo puede contener el abuso antes de que se convierta en un problema de reputación). Este tutorial cubre el modelo de datos, la cola de moderación, el filtro antispam y las reglas de convivencia.

Dónde tienen sentido los comentarios en el sitio

No toda página necesita comentarios. Los lugares que más se benefician son: publicaciones del blog (feedback y discusión), páginas de ranking (comentarios sobre disputas del top), perfil de jugador (felicitaciones, provocaciones leves) y páginas de evento (reacción en tiempo real). Evita habilitar comentarios en páginas puramente técnicas (como tutoriales o términos de uso), donde la discusión tiende a ser irrelevante para el contenido.

Modelo de datos

CREATE TABLE comments (
  id INT PRIMARY KEY AUTO_INCREMENT,
  account_id INT NOT NULL,
  target_type ENUM('blog_post','ranking','profile','event') NOT NULL,
  target_id INT NOT NULL,
  parent_id INT NULL,
  content TEXT NOT NULL,
  status ENUM('pending','approved','rejected','flagged') DEFAULT 'pending',
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  ip_hash VARCHAR(64)
);

CREATE TABLE comment_reports (
  id INT PRIMARY KEY AUTO_INCREMENT,
  comment_id INT NOT NULL,
  reporter_account_id INT NOT NULL,
  reason VARCHAR(100),
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

target_type + target_id hacen la tabla lo suficientemente genérica para servir al blog, ranking, perfil y evento sin necesitar tablas separadas por contexto. parent_id permite respuestas en hilo.

Exigir cuenta registrada para comentar

El comentario totalmente anónimo es el principal vector de spam y abuso. Exigir login con la misma cuenta de juego del panel (reutilizando la autenticación ya existente) crea un costo mínimo de identidad — el jugador sabe que el comentario está vinculado a la cuenta que usa para jugar, lo que ya reduce buena parte del comportamiento tóxico sin ninguna regla adicional.

Moderación previa vs. reactiva

ModeloCómo funcionaMejor para
Previa (cola de aprobación)Todo comentario entra como pending y solo aparece tras la aprobación manualServidores pequeños/medianos, bajo volumen diario
Reactiva (denuncia)El comentario aparece de inmediato; la comunidad denuncia; el moderador revisaServidores grandes, alto volumen diario
HíbridaEl filtro automático bloquea lo obvio; el resto pasa por la vía reactivaMayoría de los servidores en crecimiento

El modelo híbrido suele ser el mejor equilibrio: un filtro automático (siguiente sección) ya bloquea el spam evidente y los insultos directos, y el resto queda en moderación reactiva con denuncia de la comunidad, sin sobrecargar al equipo con la aprobación manual de todo.

Filtro antispam automático

Antes de que un comentario se convierta en pending o approved, hazlo pasar por un filtro básico:

function filterComment($content) {
    $bannedWords = loadBannedWordsList(); // lista de palabras prohibidas
    $lower = mb_strtolower($content);

    foreach ($bannedWords as $word) {
        if (str_contains($lower, $word)) {
            return 'rejected';
        }
    }

    if (preg_match('/(https?:\/\/|www\.)/i', $content)) {
        return 'flagged'; // enlaces sospechosos van a revisión manual
    }

    if (substr_count($content, strtoupper($content)) > 0 && strlen($content) > 20) {
        return 'flagged'; // texto todo en mayúsculas, posible spam agresivo
    }

    return 'pending';
}

Los enlaces en comentarios casi siempre merecen revisión manual (flagged), ya que son el principal vector de spam de sitios externos y estafas de phishing dirigidas a jugadores.

Cola de moderación para el equipo

El equipo de moderación necesita una pantalla simple que liste los comentarios pending y flagged, con el contexto (dónde se publicó, quién lo publicó, historial del autor) visible sin necesidad de navegar a otra página. Acciones mínimas: aprobar, rechazar y silenciar al autor de comentar (mute) por un período configurable.

AcciónEfectoReversible
AprobarEl comentario pasa a approved y queda públicoSí, se puede revertir después
RechazarEl comentario queda oculto, el autor no es notificado del motivo
Silencio temporalLa cuenta no puede comentar por X díasSí, expira automáticamente
Baneo de comentarLa cuenta queda impedida permanentemente de comentarSolo por decisión de un admin

Sistema de denuncia por parte de la comunidad

Un botón "denunciar" en cada comentario, ligado a la tabla comment_reports, permite que la propia comunidad señale abusos que pasaron el filtro automático. Cuando un comentario acumula un número mínimo de denuncias (ej. 3 de cuentas distintas), cambia automáticamente a flagged y entra en la cola de revisión prioritaria, incluso sin intervención manual hasta ese punto.

Reglas de convivencia y sanción progresiva

Publica reglas claras sobre lo que no está permitido: ataques personales, peleas de guild fuera de contexto, difusión de otros servidores, contenido ofensivo. La sanción debe ser progresiva:

  1. Primera infracción: aviso + eliminación del comentario.
  2. Segunda infracción: silencio de 7 días.
  3. Tercera infracción: silencio de 30 días.
  4. Reincidencia: baneo permanente de comentar (no necesariamente de la cuenta de juego).

Documenta estas reglas en una página pública, enlazada cerca del cuadro de comentarios, para reducir las alegaciones de "no sabía que eso estaba prohibido".

Detección de cuentas coordinadas (brigading)

Cuando varias cuentas comentan de forma coordinada en la misma publicación, atacando al mismo objetivo, cruza el hash de IP y el fingerprint entre esas cuentas — la misma infraestructura antifraude usada en otros sistemas del sitio (afiliados, apuestas) puede reutilizarse aquí, ya que el patrón de detección (cuentas relacionadas por IP/dispositivo actuando en conjunto) es el mismo.

Visualización y formato

Permite formato básico (negrita, cursiva, mención a otro jugador) pero evita el HTML libre — siempre sanitiza el contenido en el backend antes de guardarlo, nunca confiando solo en la validación del frontend. Un comentario con script malicioso sin filtrar es una vulnerabilidad clásica de XSS que puede comprometer sesiones de otros jugadores.

Errores comunes y soluciones

SíntomaCausa probableSolución
Spam de enlaces pasa directoEl filtro no captura patrones de URLAjusta la regex de detección de enlaces y agrega revisión manual obligatoria
Un comentario con HTML rompe el diseño de la páginaFalta de sanitización en el backendSanitiza y escapa el contenido antes de guardar y antes de renderizar
La cola de moderación crece más rápido de lo que el equipo puede revisarModeración 100% previa en un servidor de alto volumenMigra a un modelo híbrido con filtro automático + denuncia
El mismo grupo de cuentas ataca repetidamente al mismo jugadorFalta de detección de cuentas coordinadasCruza IP/fingerprint y aplica sanción en conjunto
Los jugadores se quejan de censura injustaFalta de reglas públicas y criterio consistentePublica reglas claras y aplica sanción progresiva documentada

Lista de verificación de lanzamiento

  • Tablas de comentarios y denuncias creadas.
  • Login obligatorio (cuenta de juego) para comentar.
  • Filtro antispam automático activo (palabras prohibidas, enlaces, mayúsculas).
  • Cola de moderación con acciones de aprobar/rechazar/silenciar implementada.
  • Botón de denuncia de la comunidad funcionando.
  • Reglas de convivencia publicadas y enlazadas cerca del cuadro de comentarios.
  • Sanitización de contenido (anti-XSS) validada en el backend.
  • Detección básica de cuentas coordinadas configurada.

Con el sistema de comentarios moderado en marcha, la comunidad gana un canal de interacción saludable en las noticias, rankings y perfiles — para revisar la base de cuentas e infraestructura sobre la que se apoya este sistema, consulta la guía de cómo crear un servidor de MU Online.

Preguntas frecuentes

¿Moderación previa (antes de publicar) o moderación reactiva (denuncia) es mejor?

Depende del volumen. Servidores pequeños/medianos pueden sostener moderación previa sin retrasar mucho la conversación. Servidores grandes generalmente necesitan moderación reactiva con un filtro automático fuerte, ya que la moderación previa manual no escala para cientos de comentarios por día.

¿Necesito cuenta registrada para comentar o acepto comentarios anónimos?

Exigir una cuenta registrada reduce drásticamente el spam y los comentarios abusivos, porque crea un costo mínimo de identidad. La recomendación es exigir login al menos con la cuenta de juego — el comentario totalmente anónimo es el principal vector de spam y ataques.

¿Cómo lidio con flame wars entre jugadores de guilds rivales en los comentarios?

Define reglas explícitas contra ataques personales y peleas de guild en los comentarios públicos, con sanción progresiva (aviso, silencio temporal, baneo de comentar). Dirige las discusiones acaloradas a canales dedicados en Discord, donde la moderación en tiempo real es más viable.

¿Vale la pena usar un servicio de terceros (Disqus, por ejemplo) en vez de un sistema propio?

Los servicios de terceros son rápidos de integrar, pero quitan el control total sobre datos, moderación y diseño, además de traer anuncios de terceros en la mayoría de los planes gratuitos. Para un sitio de servidor de MU, un sistema propio integrado al login existente suele valer el esfuerzo extra.

¿Cómo identifico cuentas con multilogin usadas para brigadear en los comentarios?

Cruza la IP y el fingerprint del navegador entre cuentas que comentan de forma coordinada en las mismas publicaciones, y aplica las mismas reglas de antifraude ya usadas en otros sistemas del sitio (afiliados, apuestas), reutilizando la misma infraestructura de detección.

RO
Fundador y editor jefe

Rodrigo mantiene ViciadosMU desde los inicios del portal. Especialista en creación y administración de servidores de MU Online, historia del juego y la evolución de las seasons — escribió buena parte del archivo antes de 2024.

Sigue leyendo

Artículos relacionados