Tengo un script de actualización, que hace clic automáticamente cada 5 segundos en un botón. Se ve algo como esto:
setInterval(function() { document.getElementsByClassName("buttonclass")[0].click(); }, 5000);Si coloco este script en el elemento de inspección/consola y lo ejecuto, ¿puede verlo el propietario del sitio web? ¿Puede el propietario del sitio ver qué tipo de secuencias de comandos se ejecutan en la consola, que el usuario/cliente inyectó en el sitio web? En caso afirmativo, ¿cómo puede verlo el propietario del sitio web?
Probablemente creo que la respuesta aquí es "depende de lo que hagas, pero generalmente no". Puede hablar de estas cosas durante horas, pero en pocas palabras: cuando "va" a un sitio web, realiza una solicitud HTTP a un servidor web que responde con todo tipo de datos. Su navegador utiliza estos datos para mostrar el sitio web. Los cambios que realiza, o la ejecución de scripts, etc., suceden en su navegador. Si cambia el color de fondo de un botón, por ejemplo, este cambio solo ocurre en su máquina. Pero técnicamente hablando, un sitio web podría codificarse de manera que cada cambio en el DOM se informe al backend (por ejemplo, a través de búsqueda), por lo que es posible que, por ejemplo, un sitio web pueda rastrear cuántos veces en un segundo presionas un botón o algo así. Sin embargo, lo que ingresa en la consola, a menos que no interactúe con el DOM o cualquier otro script, nunca puede ser leído por el propietario, porque no tiene nada que ver con el sitio web, sino con su navegador (por ejemplo, si escribe "1+1" en la consola, el dueño no va a ver eso).
Aparte del hecho de que es técnicamente posible rastrear algunas, pero no todas las actividades o cambios que un usuario hace en un sitio web, de forma predeterminada, si no está codificado de esa manera, el propietario del sitio web no puede ver lo que está haciendo con la versión del sitio web que solicitó.
JavaScript no proporciona una API que permita que las páginas web vean todo lo que sucede en la consola. Entonces, para responder a la pregunta en su título: no, eso no es posible. Al menos, no directamente.
En teoría, hay muchas formas de detectar si se ejecuta un código específico. Por ejemplo, puede ajustar la función nativa setInterval y enviar una solicitud AJAX al servidor cuando alguien la active.
Aquí hay un pequeño ejemplo:
(function() { const nativeSetInterval = window.setInterval; window.setInterval = (...args) => { console.log("Someone ran the setInterval function..."); nativeSetInterval(...args); } })(); Open the console, be sure to select the right (stacksnippets.net) frame, and execute <code>setInterval<code>. <code>setInterval(() => console.log('I run every second.'), 1000);</code>Sin embargo, esto es muy poco probable que sea el caso. Lo que es más probable es que al hacer clic en ese botón se active alguna llamada al servidor del sitio web, que tiene algún registro. Si el registro muestra que alguna acción se realiza exactamente cada 5 segundos durante un período de tiempo prolongado, llegarán fácilmente a la conclusión de que no se realizó manualmente.
Por lo que sé, no puedes ver directamente si un usuario está ingresando y usando la consola del desarrollador, dicho esto, si haces clic en un botón cada 5 segundos, podrías detectar ese tipo de comportamiento. Entonces, directamente no puede ver qué y si las personas ingresan cosas en la consola de desarrollo, pero indirectamente puede en algunos casos