Lo que ha cambiado desde que lo contamos
El 31 de agosto de 2026 el fichero de cookies del Ministerio de Sanidad llamaba a una función por un nombre que no existía. El 21 de septiembre la llama por el suyo. Ese día volvimos a pedir las 349 citas de las 57 piezas del museo y las comparamos letra a letra con lo guardado. En 5 piezas algo había cambiado.
- Recomprobación
- 21 de septiembre de 2026
- Citas pedidas
- 349 de 64 piezas
- Siguen
- 327
- Ya no aparecen
- 16
- Sin respuesta
- 6
Sanidad. El fichero cookie.js de www.sanidad.gob.es tenía una función para borrar una cookie, la nota que una web deja en el navegador para reconocer a quien vuelve. Esa función llamaba a Caduca, con mayúscula, cuando la función definida se llamaba caduca. Ejecutada, se paraba con un error. La misma función calculaba los días con eval, la orden que ejecuta un texto como si fuera programa. El 15 de septiembre el fichero seguía idéntico al guardado. El 21 de septiembre, ya no.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 2,6 kB
- sha256
- d2979066a147…
| 41 | } |
| 42 | |
| 43 | function caduca(dias) { |
| 44 | var hoy = new Date(); //coge la fecha actual |
| 45 | var msEnXDias = eval(dias)*24*60*60*1000; //pasa los dias a mseg. |
| 46 | hoy.setTime(hoy.getTime() + msEnXDias); //fecha de caducidad: actual + caducidad |
| 47 | return (hoy.toGMTString()); |
| 48 | } |
| 49 | |
| 50 | function borrarCookie(nombre) { |
| 51 | //para borrar la cookie, se le pone una fecha del pasado mediante Caduca(-1) |
| 52 | document.cookie = nombre + "=; expires=" + Caduca(-1) + "; path=/" |
| 53 | } |
| 54 | |
| 55 | function introducirCookie(parametro, valor) { |
| 56 | //establece la cookie, caducidad 90 días |
| 57 | var _dias = caduca(90); //crea la fecha de caducidad si 31 dias |
| 58 | if (valor != "") |
| 59 | guardarCookie(parametro, valor, _dias); |
| 60 | } |
| 61 | |
| 62 | |
| 63 | var parametro = 'idUsuario'; |
La copia del 21 de septiembre llama a caduca en minúscula y calcula los días con Number, que convierte un texto en número y nada más. El comentario de la línea de al lado sigue igual; el que decía 31 días junto a un 90 se ha ido. El cambio en el servidor cayó en algún momento entre el 15 y el 21 de septiembre. No sabemos en qué día, ni por qué.
- Copia
- en vivo
- Leído
- 21 sep 2026
- Peso
- 2,6 kB
- sha256
- 2aa99fd66fe2…
| 41 | } |
| 42 | |
| 43 | function caduca(dias) { |
| 44 | var hoy = new Date(); //coge la fecha actual |
| 45 | var msEnXDias = Number(dias)*24*60*60*1000; //pasa los dias a mseg. |
| 46 | hoy.setTime(hoy.getTime() + msEnXDias); //fecha de caducidad: actual + caducidad |
| 47 | return (hoy.toGMTString()); |
| 48 | } |
| 49 | |
| 50 | function borrarCookie(nombre) { |
| 51 | //para borrar la cookie, se le pone una fecha del pasado mediante caduca(-1) |
| 52 | document.cookie = nombre + "=; expires=" + caduca(-1) + "; path=/" |
| 53 | } |
| 54 | |
| 55 | function introducirCookie(parametro, valor) { |
| 56 | //establece la cookie, caducidad 90 d as |
| 57 | var _dias = caduca(90); |
| 58 | if (valor != "") |
| 59 | guardarCookie(parametro, valor, _dias); |
| 60 | } |
| 61 | |
| 62 | |
| 63 | var parametro = 'idUsuario'; |
| 34 | function guardarCookie (nombre, valor, caducidad) { |
| 35 | if(!caducidad) |
| 36 | caducidad = caduca(0); |
| 37 | |
| 38 | //crea la cookie: incluye el nombre, la caducidad y la ruta donde esta guardada |
| 39 | //cada valor esta separado por ; y un espacio |
| 40 | document.cookie = nombre + "=" + escape(valor) + "; expires=" + caducidad + "; path=/" |
| 41 | } |
| 42 | |
| 43 | function caduca(dias) { |
| 44 | var hoy = new Date(); //coge la fecha actual |
| 45 | var msEnXDias = Number(dias)*24*60*60*1000; //pasa los dias a mseg. |
| 46 | hoy.setTime(hoy.getTime() + msEnXDias); //fecha de caducidad: actual + caducidad |
| 47 | return (hoy.toGMTString()); |
| 48 | } |
| 49 | |
| 50 | function borrarCookie(nombre) { |
| 51 | //para borrar la cookie, se le pone una fecha del pasado mediante caduca(-1) |
| 52 | document.cookie = nombre + "=; expires=" + caduca(-1) + "; path=/" |
| 53 | } |
| 54 | |
| 55 | function introducirCookie(parametro, valor) { |
| 56 | //establece la cookie, caducidad 90 d as |
Intervención General. En una página de protección de datos de www.pap.hacienda.gob.es había un trozo de programa para el botón de notificaciones urgentes. Al pulsarlo, miraba desde qué dirección se había pulsado. Si no era una de las dos de dentro, apuntaba a un servidor de la red interna del ministerio. La página del 21 de septiembre lleva el mismo título y el mismo encabezado. El programa ya no está. Tampoco el botón, ni la palabra notificaciones en ningún sitio de la página.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 4,8 kB
- sha256
- 2d7741066cd0…
| 58 | .then(res => { |
| 59 | let datos = JSON.parse(res.d); |
| 60 | |
| 61 | console.log(datos); |
| 62 | }) |
| 63 | .catch(err => console.error('Error:', err)); |
| 64 | } |
| 65 | function abrir |
| 66 | { |
| 67 | const host = window.location.hostname; |
| 68 | let url = 'http://' + host + '/ |
| 69 | if(host.includes('igae') || host.includes('internet')) |
| 70 | { |
| 71 | window.open(url,'_blank'); |
| 72 | } |
| 73 | else |
| 74 | { |
| 75 | url = 'http:// |
| 76 | if(host.includes('pre')) |
| 77 | { |
| 78 | url = 'http:// |
| 79 | } |
| 80 | window.open(url,'_blank'); |
- Copia
- en vivo
- Leído
- 21 sep 2026
- Peso
- 42,3 kB
- sha256
- 13bbae0d6381…
| 329 | <div id="madCenter" class="clearfix"> |
| 330 | <main id="madMain"> |
| 331 | <div id="pageStatusBar"></div> |
| 332 | |
| 333 | <div id=" |
| 334 | <!-- BreadCrumb --> |
| 335 | <div id="madBC"> |
| 336 | <ul id="madBreadcrumb"><li id="madBCFirst" ><a href="/ |
| 337 | </div> |
| 338 | <!-- Title --> |
| 339 | <div id="madTitle"> |
| 340 | <h1>INFORMACIÓN ADICIONAL SOBRE PROTECCIÓN DE DATOS PERSONALES</h1> |
| 341 | </div> |
| 342 | |
| 343 | <!-- madFirstP --> |
| 344 | <div id="madFirstP"> |
| 345 | <!-- Imagen --> |
| 346 | <div id="madImagen"> |
| 347 | <div id=" |
| 348 | </div> |
| 349 | <!-- Contenido --> |
| 350 | <div id=" |
| 351 | <div id=" |
Málaga. En el tablón de edictos de www.malaga.eu, el desplegable de organismos ofrecía «Orquesta Ciudad de Málaga», una á guardada de una manera y leída de otra. El 21 de septiembre el nombre está bien escrito. Ya no va en un desplegable sino en la lista de enlaces con que el tablón se filtra. La ficha de las tildes lo contaba ya así, con las dos fechas.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 136,9 kB
- sha256
- c1467364e095…
| 1713 | <option value=""> |
| 1714 | <optgroup label="AYUNTAMIENTO DE MÁLAGA"> |
| 1715 | <option value="503" >Alcaldia</option> |
| 1716 | <option value="443" >Calificaciones Ambientales</option> |
| 1717 | <option value="249" >Comercio, Vía Pública y Mercados</option> |
| 1718 | <option value="163" >Convocatorias y Patrocinios</option> |
| 1719 | <option value="244" >Cultura</option> |
| 1720 | <option value="246" >Gestión Tributaria</option> |
| 1721 | <option value="603" >Movilidad</option> |
| 1722 | <option value="583" >Objetos Perdidos</option> |
| 1723 | <option value="203" >Ordenanzas y Reglamentos</option> |
| 1724 | <option value="543" >Orquesta Ciudad de Málaga</option> |
| 1725 | <option value="283" >Premios</option> |
| 1726 | <option value="223" >Presupuestos Y Economia</option> |
| 1727 | <option value="247" >Recursos humanos</option> |
| 1728 | <option value="623" >Servicios Operativos</option> |
| 1729 | <option value="123" >Subvenciones y Prestaciones</option> |
| 1730 | <option value="143" >Transportes</option> |
| 1731 | <option value="253" >Varios</option> |
| 1732 | <option value="245" >Vivienda y Urbanismo</option> |
| 1733 | </optgroup> |
| 1734 | <optgroup label="OTRAS ADMINISTRACIONES PÚBLICAS"> |
| 1735 | <option value="263" >(*) Agencia Tributaria</option> |
| 1612 | class="panel-collapse collapse"> |
| 1613 | <div class="panel-body"> |
| 1614 | |
| 1615 | <ul class="nav"><li class="" id="li-menu-81"> |
| 1616 | <a href="/ |
| 1617 | title="Ayuntamiento de Málaga" >Ayuntamiento de Málaga</a> |
| 1618 | </li><li class="" id="li-menu-82"> |
| 1619 | <a href="/ |
| 1620 | title="Agencia Pública para la Gestión de la Casa Natal P. R. Picasso" >Agencia Pública para la Gestión de la Casa Natal P. R. Picasso </a> |
| 1621 | </li><li class="" id="li-menu-83"> |
| 1622 | <a href="/ |
| 1623 | title="Orquesta Ciudad de Málaga" >Orquesta Ciudad de Málaga</a> |
| 1624 | </li><li class="" id="li-menu-84"> |
| 1625 | <a href="/ |
| 1626 | title="Gerencia Municipal de Urbanismo, Obras e Infraestructuras" >Gerencia Municipal de Urbanismo, Obras e Infraestructuras</a> |
| 1627 | </li><li class="" id="li-menu-85"> |
| 1628 | <a href="/ |
| 1629 | title="Organismo Autónomo de Gestión Tributaria y Otros Servicios del excelentísimo Ayuntamiento de Málaga" >Organismo Autónomo de Gestión Tributaria y Otros Servicios del excelentísimo Ayuntamiento de Málaga</a> |
| 1630 | </li><li class="" id="li-menu-86"> |
| 1631 | <a href="/ |
| 1632 | title="Instituto Municipal para la Formación y el Empleo" >Instituto Municipal para la Formación y el Empleo</a> |
| 1633 | </li></ul></div> |
| 1634 | </div> |
Esas son las tres arregladas. Las otras dos cambiaron y siguen ahí. Pamplona. La página del Archivo Municipal cargaba, el 31 de agosto, la librería Bootstrap cuatro veces seguidas, en sus cuatro presentaciones. El 15 de septiembre, igual. El 21 de septiembre la carga una vez, bootstrap.js, y las otras tres etiquetas han desaparecido. De las 13 etiquetas de programa que quedan, 4 piden ficheros a servidores de fuera del ayuntamiento, cdn.ckeditor.com y cdn.ckbox.io, que el 31 de agosto no aparecían. La página carga Bootstrap una vez y pide cuatro ficheros fuera.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 41,0 kB
- sha256
- 255a5953bf19…
| 280 | var scriptExists = false; |
| 281 | try { if (xajax.isLoaded) scriptExists = true; } |
| 282 | catch (e) {} |
| 283 | if (!scriptExists) { |
| 284 | alert('Error: the xajax Javascript component could not be included. Perhaps the URL is incorrect?\nURL: ../scripts/xajax_core.js'); |
| 285 | } |
| 286 | }, |
| 287 | 6000 |
| 288 | ); |
| 289 | /* ]]> */ |
| 290 | </script> |
| 291 | …src="../ |
| 292 | $(window).resize(function() { |
| 293 | posicionarMenu(); |
| 294 | }); |
| 295 | </script> |
| 296 | <link rel="stylesheet" href="../ |
| 297 | <script> |
| 298 | function cambiarOperador(valor){ |
| 299 | } |
| 300 | |
| 301 | </script><!-- MODAL DE EMAIL --> |
| 302 | <div class="modal fade" id="miconectarse" role="dialog"> |
- Copia
- en vivo
- Leído
- 21 sep 2026
- Peso
- 40,7 kB
- sha256
- cace7af68f8d…
| 289 | catch (e) {} |
| 290 | if (!scriptExists) { |
| 291 | alert('Error: the xajax Javascript component could not be included. Perhaps the URL is incorrect?\nURL: ../scripts/xajax_core.js'); |
| 292 | } |
| 293 | }, |
| 294 | 6000 |
| 295 | ); |
| 296 | /* ]]> */ |
| 297 | </script> |
| 298 | <SCRIPT src="../ |
| 299 | <link rel="stylesheet" href=" |
| 300 | <script src=" |
| 301 | <script src=" |
| 302 | <script src=" |
| 303 | |
| 304 | <script> |
| 305 | function cambiarOperador(valor){ |
| 306 | } |
| 307 | |
| 308 | </script><script>var codopac=" |
| 309 | <script> |
| 310 | |
| 311 | var accion1="Entrar"; |
Servicio Murciano de Salud. Su sede servía una página en una dirección que no debía existir, /sms/licitacion/@{/tramites}, el nombre de una variable de plantilla que nadie sustituyó por su valor. Una variable de plantilla es un hueco que el servidor tiene que rellenar antes de servir la página; aquí sirvió el hueco. Esa página llevaba un comentario del programador que reconocía repetir la cabecera del documento por no encontrar forma limpia de evitarlo. El 21 de septiembre la dirección contesta 404, página no encontrada. La página de error trae el mismo título y el mismo comentario.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 31,3 kB
- sha256
- 734da47a1029…
| 1 | <html lang="es"> |
| 2 | <head> |
| 3 | <!-- TODO: Esto repite el tag head, pero no hay forma limpia de solucionarlo. Los navegadores parecen aceptarlo --> |
| 4 | |
| 5 | <title>Portal de Licitación Electrónica del Servicio Murciano de Salud</title> |
| 6 | <link rel="shortcut icon" href="/ |
| 7 | <meta name="description" content="Acceso a convocatorias abiertas a participación, consulta del estado de adjudicación y presentación de ofertas de forma electrónica" /> |
| 8 | <meta name="keywords" content="Sede Electrónica, Contratación y Licitación Electrónica de Pixelware" /> |
| 9 | <!-- Web Fonts --> |
| 10 | <link rel="stylesheet" type="text/css" href=" |
| 11 | |
| 12 | <meta http-equiv=" |
| 13 | <meta name="viewport" content=" |
| 14 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
Las cuentas, en la tabla de abajo. De las 349 citas de las 57 piezas, 327 aparecen el 21 de septiembre en la misma dirección, letra a letra. 16 ya no aparecen: 14 son las de estas cinco piezas y las otras 2 son cambios de nada, una fecha de caducidad en la página del Ministerio de Igualdad y el sufijo de caché de un fichero en la de la CNMC. 6 no se pudieron comprobar porque el servidor no contestó, 4 de Navarra y 2 de Huesca. La dirección murciana contestó 404 a mediodía y, en la pasada de la tarde que llena la tabla, desvió a una página de comprobación contra robots.
Cada página se pidió una vez, como la pide un navegador, sin cookies y sin identificarse, con 40 segundos de espera; la copia de Pamplona del 15 de septiembre también se volvió a pedir y cuenta como cambiada, porque la del 21 la sustituye. Las fichas de las cinco piezas no se han tocado. Cuentan lo que se sirvió el 31 de agosto de 2026, que es lo que dicen contar, y al pie de cada una hay ahora una línea que remite aquí.
Tres servidores han cambiado lo que citábamos y dos han movido los muebles. Las fichas siguen diciendo lo que decían, con su fecha.
- El 21 de septiembre de 2026 pedimos, con una petición por página y sin cookies, las 349 direcciones citadas por las 57 piezas publicadas y buscamos en la respuesta el texto exacto de cada vitrina, en dos pasadas el mismo día: en la que llena la tabla, 327 aparecen, 16 no y 6 no obtuvieron respuesta (www.educacion.navarra.es, pre.dphuesca.es y www.dphuesca.es).
- cookie.js de www.sanidad.gob.es era idéntico al guardado el 15 de septiembre y el 21 de septiembre lleva caduca(-1) y Number(dias) donde había Caduca(-1) y eval(dias).
- La página InformacionProteccionDatos.aspx de www.pap.hacienda.gob.es del 21 de septiembre (42.338 bytes) no contiene
abrirNotificacionesUrgentes, host.includes ni la cadena Notificaciones. - El tablón de edictos de www.malaga.eu del 21 de septiembre contiene «Orquesta Ciudad de Málaga» como enlace y ninguna secuencia Ã.
- proyecto.php de archivo.pamplona.es del 21 de septiembre (40.654 bytes) lleva 13 etiquetas <script src>, una sola de Bootstrap y 4 con dirección en cdn.ckeditor.com o cdn.ckbox.io, frente a las 22 etiquetas y 4 de Bootstrap del 31 de agosto y del 15 de septiembre.
- https://sede.carm.es/sms/licitacion/@{/tramites} contestó el 21 de septiembre a las 12:23 con código 404 y una página de 32.581 bytes que contiene el mismo comentario TODO y el mismo título que la del 31 de agosto.
- No decimos que ninguno de estos cambios tenga que ver con el museo: no lo sabemos y no hemos preguntado.
- No decimos en qué día cambió cada servidor, solo entre qué dos fechas.
- No decimos que la página de Pamplona pese el 21 de septiembre más o menos que el 31 de agosto: no hemos descargado sus ficheros de programa esta vez, solo contado las etiquetas.
- No decimos que el comentario de la sede murciana haya desaparecido del resto del sitio, ni que haya reaparecido: solo que está en la página de error de esa dirección.
- No decimos qué ve un visitante en ninguna de las cinco: hemos leído lo que sirve el servidor, sin abrirlas en un navegador.
- Y las 6 direcciones que no contestaron pueden estar bien: un servidor que no responde a nuestra máquina puede responder a otras.
De dónde sale cada cita
Cada trozo de código de esta ficha está en un fichero guardado tal como lo entregó el servidor, con su huella (sha256) y su hora. Las citas entre «» se comprueban por programa contra ese fichero antes de publicar.
- https://www.sanidad.gob.es/diseno/js/cookie.js31 de agosto de 2026, 16:09archivosha256 d2979066a147180e5841d6a21c6fcd3b6921fb741b577c66dff5b29fa369f035
- https://www.sanidad.gob.es/diseno/js/cookie.js21 de septiembre de 2026, 14:23en vivo · distinto · falta la cita nº 1sha256 2aa99fd66fe2efc96f864dca4e3e94751cd6504645b97a3f20c58f9a6c591f93
- https://www.sanidad.gob.es/diseno/js/cookie.js21 de septiembre de 2026, 14:23en vivosha256 2aa99fd66fe2efc96f864dca4e3e94751cd6504645b97a3f20c58f9a6c591f93
- https://www.pap.hacienda.gob.es/sitios/pap/es-ES/Paginas/InformacionProteccionDatos.aspx31 de agosto de 2026, 21:45archivosha256 2d7741066cd001bb99f340ac9e3a65a6dc4f46692862ed9969e12461462598c5
- https://www.pap.hacienda.gob.es/sitios/pap/es-ES/Paginas/InformacionProteccionDatos.aspx21 de septiembre de 2026, 14:23en vivo · distinto · falta la cita nº 4sha256 13bbae0d63817ce16e6ea1deb5c076b3d82b711dbc94d319e9a708480ee9569e
- https://www.pap.hacienda.gob.es/sitios/pap/es-ES/Paginas/InformacionProteccionDatos.aspx21 de septiembre de 2026, 14:23en vivosha256 13bbae0d63817ce16e6ea1deb5c076b3d82b711dbc94d319e9a708480ee9569e
- https://www.malaga.eu/el-ayuntamiento/tablon-de-edictos/31 de agosto de 2026, 16:09archivosha256 c1467364e095d6725064ef38b70221a7063ffe9a67c7f225310c8550c6f39959
- https://www.malaga.eu/el-ayuntamiento/tablon-de-edictos/21 de septiembre de 2026, 14:23en vivo · distinto · falta la cita nº 6sha256 4969ba74fdd344f52ee6722ccd0f36a8f11bafdf91c74d547cd9a13a46965a4e
- http://archivo.pamplona.es/inicio/proyecto.php31 de agosto de 2026, 16:28archivosha256 255a5953bf19e4cddbc1a185b9f72acd3136981f3ffa7f60c63fbb3f7d5f9b51
- https://archivo.pamplona.es/inicio/proyecto.php21 de septiembre de 2026, 14:23en vivo · distinto · la cita siguesha256 cace7af68f8d9f8f5e37ca40eec17e3637ff4935538d075aeaffef2fb6df42c6
- https://archivo.pamplona.es/inicio/proyecto.php21 de septiembre de 2026, 14:23en vivosha256 cace7af68f8d9f8f5e37ca40eec17e3637ff4935538d075aeaffef2fb6df42c6
- https://sede.carm.es/sms/licitacion/@{/tramites}31 de agosto de 2026, 22:59archivosha256 734da47a1029fe87bf957de27d1ea1058770c019a1b09023c18817574a211fc8
- https://sede.carm.es/sms/licitacion/@{/tramites}21 de septiembre de 2026, 14:23en vivo · distinto · la cita siguesha256 62d19ca9f5544336dad3b22a72de3d1d86f307a01431b6c0c16f370eaed89348