Bloquear logs de navegador en WordPress

Es muy frecuente que los que trabajamos en sitios WordPress, como casi nadie usa sitios de pruebas y de producción separados (aunque en algunos alojamiento es muy sencillo hacerlo) dejemos datos de depuración activos. Lo frecuente es ocultarlos cuando dejamos de usarlos, ya sea quitando el WP_DEBUG_DISPLAY para que no se llene todo de mensajes de depuración y quitando el WP_DEBUG_LOG para no generar ficheros enormes de log que encima son accesibles si usas la ruta estándar.

Por qué es importante ocultar la información de depuración

Pues porque aparecen datos que son muy útiles para un posible atacante:

  • Rutas de ficheros
  • Uso de ciertos plugins
  • Errores activos
  • Configuraciones
  • Estado de algunas variables
  • Se pueden inferir otros datos estilo versiones de PHP, servidor web o base de datos

Todo eso, son datos que se pueden usar para hacer determinados ataques. Datos que si ocultamos, evitamos el riesgo.

Errores de consola: el gran olvidado

Pero aquí hay un gran olvidado: los errores de consola. Y es que hay plugins o tú mismo, que puedes dejar mensajes en la consola del navegador para rastrear algunos comportamientos. Y esto es un problema por lo que acabamos de hablar.

Así que como es bien posible que muchos de esos mensajes de la consola no puedas quitarlos porque se generen por un plugin que no podemos editar ni sobre el que podemos hacer hooks de ningún tipo, lo mejor es de forma genérica silenciar cualquier mensaje de consola, ya sea de log, error o warning.

Os dejo un pequeño código para vuestro tema hijo para hacerlo. Como es lógico, solo se ejecutará si no tenemos la depuración activa, para así poder depurar de una vez la parte del servidor y la del navegador.

add_action( 'wp_footer', function() {
  if( WP_DEBUG && WP_DEBUG_DISPLAY)
    return;
    
  echo "<script>
  if (window.console) {
    console.log = function() {};
    console.warn = function() {};
    console.error = function() {};
  }
  </script>";
} );
(Ninguna valoración todavía)

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

0

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito