texto page negrita letra attribute javascript firefox safari query-string browser-extension

javascript - page - title html attribute



¿Qué podría estar cambiando los parámetros de mi cadena de consulta construidos en JavaScript? (5)

Así que esto podría ser una posibilidad muy larga, pero estoy completamente perplejo sobre lo que podría estar causando este problema:

Estoy entregando un JavaScript del lado del cliente, que analiza ciertos parámetros en la página donde está incrustado, utiliza estos parámetros para construir una URL e inyectar un iframe usando esa URL en la página como

var queryParams = { param: ''foo'' , other: ''bar'' };

se convierte en:

<iframe src="http://example.net/iframes/123?param=foo&other=bar"></iframe>

Esto está funcionando bastante bien, estoy entregando alrededor de 1.5 millones de solicitudes por día. Sin embargo, hace poco noté que en unos 3.000 casos por día los valores de los parámetros de consulta se barajan, por lo que se solicita algo así:

<iframe src="http://example.net/iframes/123?param=ofo&other=rba"></iframe>

A juzgar por los registros, esto está vinculado a usuarios específicos, y la mezcla de caracteres ocurrirá de nuevo en cada solicitud, por lo que puedo ver secuencias como esta cuando un usuario navega por el sitio con varias páginas utilizando el script:

108.161.183.122 - - [14/Sep/2015:15:18:51 +0000] "GET /iframe/ogequl093iwsfr8n?param=3a1bc2 HTTP/1.0" 401 11601 "http://www.example.net/gallery?page=1" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0" 108.161.183.122 - - [14/Sep/2015:15:19:07 +0000] "GET /iframe/ogequl093iwsfr8n?param=a21b3c HTTP/1.0" 401 11601 "http://www.example.net/gallery?page=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0" 108.161.183.122 - - [14/Sep/2015:15:19:29 +0000] "GET /iframe/ogequl093iwsfr8n?param=ba132c HTTP/1.0" 401 11601 "http://www.example.net/gallery?page=3" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"

El 401 está ocurriendo a propósito, ya que el servidor espera que param=abc123 .

También me di cuenta de que la mayoría de los errores se producen en Firefox y Safari, Google Chrome no ha solicitado una sola URL errónea.

La biblioteca que estoy utilizando para convertir el objeto en una cadena de consulta es: cadena de query-string - pero mirando el código fuente, no veo ningún potencial para un error de ese tipo allí, no se hace nada con los valores que no están Hecho a las teclas (que no están en mal estado).

¿Alguien ha encontrado algo similar? ¿Es esta una extraña extensión de navegador? ¿Es esta una colisión de mi script con otra biblioteca que extiende prototipos? ¿Es este malware? ¿Es esto algo de lo que no estoy enterado? Estaré agradecido por cualquier pista porque no tengo ni idea y esto me está volviendo loco.

EDITAR : Acabo de descubrir que otro de nuestros servicios públicos está siendo investigado por algo llamado "Burp Suite". Echando un vistazo a su sitio web veo que tienen una herramienta llamada "Payload fuzzing" que parece hacer casi lo que se describe aquí: https://portswigger.net/burp/help/intruder_gettingstarted.html o aquí: https://portswigger.net/burp/help/intruder_using.html#uses_enumerating : toda la herramienta me huele a https://portswigger.net/burp/help/intruder_using.html#uses_enumerating , así que podría ser algo que valga la pena investigar más. ¿Alguien más ha oído hablar de este conjunto de herramientas?


Algún robot rastrea tu sitio, es bastante normal. Si no desea que cargue su servidor, bloquee la solicitud de IP.



Me parece muy poco probable que este comportamiento tenga raíces tanto en su código de cadena de consulta como en el suyo. Dado que los valores de la cadena de consulta pueden modificarse libremente, sospecho que esto es lo que está ocurriendo; recuerde que esto es el 0.2% de sus solicitudes.

Hay un par de cosas que revisaría. ¿Sabe si estas solicitudes se remiten desde otros sitios web, su propio sitio web o se realizan directamente? ¿Sabe si alguna de las IP de origen corresponde a bots conocidos o rastreadores web? ¿Son las solicitudes de una variedad de fuentes o un pequeño subconjunto de visitantes repetidos?

Es posible que un robot o un rastreador web esté "explorando ligeramente su sitio" o probando páginas duplicadas o parámetros engañosos.


No hay mucho que analizar desde este punto, y ya que estás buscando pistas; esto es más como un comentario largo en lugar de una respuesta.

Un malware en el navegador del cliente (o máquina) o en su servidor web; o un rastreador desconocido podría estar causando esto, lo cual es poco probable. Para mí, parece que tu aplicación está siendo atacada.

Veamos;

  • El ejemplo real (en los comentarios), muestra que las claves de acceso hexadecimal de 128 bits se están barajando. (valores de accessKey param)
  • Sólo los valores se barajan y no las claves.
  • Usted dice, las solicitudes provienen de usuarios específicos .
  • Usted dice que las solicitudes provienen de clientes específicos del navegador (Firefox y Safari).

Qué revisar / hacer;

  • Compruebe si su sistema de registro funciona correctamente. Si está utilizando un registrador configurable de terceros, esto podría desordenar las cosas. ( example )
  • Reproducir : tomar el mismo conjunto exacto de parámetros; use la misma versión de navegador (s) y vea si los resultados son los mismos. Si es así, podría tratarse de un problema con la versión del navegador, lo cual es altamente improbable.
  • Verifique si hay otros usuarios de Firefox y Safari (con las mismas versiones) que NO experimenten esto.
  • Ya que dice que es solo un pequeño porcentaje de las solicitudes, verifique si las solicitudes correspondientes se realizan inmediatamente después de otra. (¿El mismo tipo de peticiones en menos de un segundo?)
  • Intenta rastrear la fuente de las solicitudes. ¿Vienen de una fuente que sospechas? ¿Puedes relacionar información de diferentes solicitudes entre sí? ¿Múltiples direcciones IP forman una subred? ¿La misma IP usando cuentas diferentes? ¿La misma cuenta usando diferentes direcciones IP en un corto período de tiempo?
  • Existen herramientas como apache-scalp , mod_sec , lorg para verificar / analizar grandes archivos de registro para extraer posibles ataques.
  • También puede utilizar algunas de las técnicas mencionadas here para detectar o bloquear manualmente solicitudes sospechosas.

Soy Tomas y soy ingeniero de software en CLIQZ.

Somos una Startup alemana que integramos funciones de búsqueda y privacidad innovadoras en los navegadores. Esto es de hecho un resultado de nuestra función Anti Tracking. También se hizo una pregunta similar en reddit y en otra pregunta sobre . Ya se respondió en ambas publicaciones, así que citaré la misma respuesta aquí:

CLIQZ Anti Tracking no está diseñado para bloquear el seguimiento en general, sino más bien solo el seguimiento de usuarios individuales, lo que consideramos una violación de la privacidad de nuestros usuarios y, por lo tanto, es inadecuado. A diferencia de otros sistemas anti-rastreo, el nuestro no bloquea las señales completamente; por lo tanto, los propietarios de sitios web pueden obtener datos para usos legítimos, como el conteo de visitas.

Para evitar la identificación de los usuarios (por ejemplo, mediante el uso de hashes de JavaScript), CLIQZ Anti Tracking de hecho permuta cadenas. . Cada vez que aparece un nuevo rastreador en nuestros datos, nuestro sistema inicialmente lo trata como un rastreador de identificación del usuario y cambia la cadena para proteger de manera preventiva a nuestros usuarios. Nuestro sistema utiliza las llamadas técnicas de anonimato k. Si ve la misma cadena para un evento con varios usuarios que aparecen de forma independiente en el transcurso de varios días, lo coloca en una lista blanca de rastreadores legítimos, no identificativos. Una vez que el rastreador está en la lista blanca, permanece sin modificar y los propietarios de sitios web ven la cadena original. En otras palabras, CLIQZ Anti Tracking limita la funcionalidad de los rastreadores legítimos solo temporalmente. Tan pronto como queda claro que un rastreador no viola la privacidad de nuestro usuario, todo funciona como de costumbre. La privacidad es extremadamente importante para nosotros y creemos que esta tecnología es necesaria para proteger a nuestros usuarios de la investigación.

Espero que esto ayude.