Fri. Dec 6th, 2024

Auditoría de cookies con Google BigQuery


En la víspera de Año Nuevo de 2018, publiqué un artículo que instruía cómo extraer páginas de un sitio y escribir los resultados en Google BigQueryConsideré que period una forma interesante de crear tu propio raspador internet, ya que utilizaba la potencia y la escala de la plataforma Google Cloud combinada con la flexibilidad de un rastreador sin cabeza construido encima de Titiritero.

En el artículo de hoy, revisito esta solución para compartir con ustedes su última versión, que incluye una característica que puede resultarle extremadamente útil cuando auditando las cookies que se colocan en su sitio.

El objetivo de este ejercicio es enumerar todo las galletas, ambas 1.ª parte y 3.ª parte, el rastreador encuentra cuando sigue automáticamente enlaces dentro de su sitio. De esta manera tendrá una thought de qué almacenamiento de cookies se utiliza realmente en su sitio.

Puede utilizar esta información para auditar y anotar de forma proactiva el uso de cookies en su sitio, lo que resulta útil en caso de que se esfuerce por cumplir con las normas de la UE. regulación de cookiesPor ejemplo.


X


El boletín informativo de Simmer

Suscríbete al Boletín a fuego lento ¡Para recibir las últimas noticias y contenidos de Simo Ahava en tu bandeja de entrada de correo electrónico!

Cómo configurarlo

Esta es la parte fácil: sigue las exacto pasos como se describe en el artículo authenticEl único cambio que quizás quieras hacer es establecer el indicador de configuración skipExternal a true en el config.json archivo, lo que significa que el rastreador ya no rastreará páginas externas que tengan enlaces desde su sitio. Esto se hizo originalmente para obtener los códigos de estado HTTP de los enlaces externos, pero como se está centrando en una auditoría de cookies, las páginas externas solo aumentarían la confusión.

Aparte de ese pequeño cambio, simplemente sigue los pasos del artículo authentic. Sólo para resumir, deberías tener lo siguiente:

  1. A Proyecto de nube de Google con el API necesarias activado.
  2. El configuración.json archivo almacenado en un depósito de almacenamiento de Google Cloud.
  3. El gce-install.sh guion modificado con la URL del archivo de configuración en el depósito de almacenamiento.
  4. Capacidad para ejecutar el secuencia de comandos de línea de comandos que crea la instancia de la máquina digital.

Una vez que se enciende la máquina digital, suponiendo que haya seguido las instrucciones meticulosamente, terminará con una tabla de BigQuery que recopila un flujo de páginas raspadas, junto con los metadatos de cookies recientemente agregados también.

El rastreador escanea las cookies tanto en solicitudes de origen como de terceros. La información de las cookies se analiza para nombre, valor, tamaño, dominio, camino, vencimiento, Sólo HTTP, seguroy Mismo sitio.

Consultas de muestra

Una vez que tengas los datos en la tabla, aquí tienes algunas consultas SQL de BigQuery que puedes ejecutar para aprovechar al máximo la nueva información.

La primera consulta es easy: le proporciona la URL rastreada junto con todas las cookies colocadas en el sitio.

SELECT
  final_url,
  cookies
FROM
  `mission.dataset.desk`

Esta segunda consulta devuelve solo las cookies, agrupando las cookies similares. Es una forma práctica de obtener una lista de todas las cookies distintas que se colocaron durante el rastreo. Cada cookie con un dominio espacio de nombres diferente al suyo es un galleta de terceros (a menos que haya olvidado configurar el skipExternal bandera a true en el paso de configuración).

SELECT
  c.title,
  c.area,
  c.httpOnly,
  c.safe,
  c.session,
  c.sameSite
FROM
  `mission.dataset.desk`,
  UNNEST(cookies) AS c
GROUP BY
  1, 2, 3, 4, 5, 6
ORDER BY
  1 ASC

Puede encontrar una captura de pantalla del resultado al principio de este artículo.

Advertencias

Hay algunas advertencias sobre esta solución.

Los sitios dinámicos que revelan enlaces de navegación solo con un clic, o que cargan contenido con carga diferida, deberán configurarse manualmente en un Rastreador personalizado Utilizando El titiritero web page API. No es fácil de configurar, ya que básicamente necesitarás agregar solo los enlaces extraídos de un clic de navegación dinámica (o evento de carga diferida) en el headless-chrome-crawler cola para evitar duplicaciones.

Otro problema es que puede haber cookies que se configuran únicamente cuando el usuario interactúa con el sitio. Un buen ejemplo es un evento de inicio de sesión o un evento de conversión que no depende de una cookie de redireccionamiento (que se habría activado con la carga de la página). En estos casos, una auditoría de cookies completa necesitaría que el rastreador se configure con estas rutas de navegación personalizadas, de modo que todas las cookies se auditen en consecuencia.

También es posible que algunos proveedores puedan detectar rastreadores y evitar que sus SDK coloquen cookies.

En cualquier caso, la solución descrita aquí debería ser un punto de partida para una auditoría de almacenamiento más completa. No aborda otras formas de almacenamiento con estado (por ejemplo, localStorage o IndexedDB), pero te da una thought de qué almacenamiento de cookies utilizan los scripts y las etiquetas que se ejecutan en tu sitio.

Resumen

Esperamos que este artículo te encourage a echar un vistazo a Raspador internet GCP proyecto nuevamente, especialmente con las capacidades actualizadas de rastreo de cookies. Creo que todas las organizaciones del mundo deberían ejercer este tipo de supervisión y gobernanza en nombre de la rendición de cuentas. Se lo debe a los visitantes de su sitio. Y, si sus prácticas caen bajo la regulación authorized, por ejemplo, del RGPD o la Ley de California, CPRAusted debería ser muy Estoy interesado en saber qué almacenamiento del navegador se utiliza en su sitio.

El headless-chrome-crawler El proyecto no se ha actualizado desde hace un par de años, pero aún funciona. Espero bifurcarlo algún día y solucionar los problemas de dependencia, que quizás hayas notado si ejecutas la solución localmente.

Déjame saber en los comentarios si tienes preguntas o sugerencias sobre la solución. ¡Estaré feliz de ayudar si puedo!

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *