Pregunta

Mi pregunta es acerca de la verificación más que cualquier otra cosa.Lo que puede ser utilizado para determinar lo que es único en un documento HTML?(El documento puede tener un grado de ser dinámica.)

Lo que es capaz de ser utilizada o generada a reconocer que una página es la página correcta con una precisión de decir el 99%, tomando en consideración que usted puede almacenar una "huella dactilar" de las clases de la página de verificación?


Para mayor claridad, esta es una opción adicional para el cifrado/https, etc.Esta página puede y va a cambiar con la dinámica de contenido de acuerdo a determinados usuarios, sin embargo puede que la huella digital, pero una sola huella dactilar no de partido del 100% el 100% de los usuarios debido a la naturaleza de contenido dinámico.Por lo tanto, un hash no puede trabajar aquí, al menos no de una forma simplista.

¿Fue útil?

Solución

Una huella digital única de una página HTML es fácil de calcular. Construir un hash de los siguientes:

  • protocolo: HTTP o HTTPS
  • URL: Dominio + URI
  • query_string
  • contenido de la página exacta abajo a un byte

Opcionalmente algunas cabeceras:

  • Server
  • Content-Type esto es importante
  • Content-encoding esto probablemente demasiado
  • más ideas? Siéntase libre de editarlos.

Esto supone que usted no está enviando los datos a las páginas.

Otros consejos

No se puede ser ni el 1% seguro si no va a comprobar IP del anfitrión. El siguiente es el cifrado. (Sin esta puede ser una víctima de ARP poisoing (sólo en redes LAN)).

La clave en HTTPS tiene que ser el mismo todo el tiempo.

Si cambia significa que alguien está engañando o la tecla consiguió actualización (las teclas tienen su fecha de caducidad.)

La huella digital de la página es el nombre de host, el puerto, y la ruta. Eso es lo único que garantiza que sea único a través de la web. Supongo que podría también incluir las cabeceras de caché (Last-Modified) para ver si ha cambiado.

Además de esto si HASHED el html se podía ver si ha cambiado, incluso si la última modificación cabecera cambió.

Suponiendo por un momento que desea almacenar una 'huella digital' de una página HTML para que pueda reconocer más tarde si exactamente los partidos, sólo tiene que utilizar un hash sencillo compendio de la página HTML.

A menos que clearify la pregunta más, no veo ninguna razón de por qué debería importar que es HTML o qué navegador que se encuentra.

Esto no le dirá si la página está en el mismo lugar sin embargo. Para eso se necesitaría para almacenar datos adicionales tales como host / IP y la ruta.

Si usted puede conseguir el texto de las versiones de las dos páginas que podría diff ellos.Se podría determinar un rango máximo aceptable para las diferencias en la página.

Hay un Unix util (llamada diff).Hay win32 versiones de esta herramienta flotando alrededor de la red también.Wikipedia tiene un artículo sobre diff: http://en.wikipedia.org/wiki/Diff.

El artículo de wiki listas libre herramientas de comparación de archivos y el "Véase también" que contiene enlaces a otros artículos que hablen de las herramientas de comparación de archivos y delta de codificación.

La "distancia de Levenshtein métrica" también puede ser un enfoque interesante.

Hay una decente C# Diferencia motor en CodeProject.Yo no puedo publicar otro enlace debido a mi baja puntos, pero el título del artículo es:"Un Genérico Reutilizable Diff Algoritmo en C#".

Aún si tiene exactamente el nombre de host, el puerto y la ruta del contenido todavía podría ser diferente si hay un servidor de aplicación que sirve las páginas web o si el servidor web está insertando el contenido del anuncio.

Si se pudiera identificar de forma fiable las partes del HTML que son dinámicos (como los anuncios o marcas de tiempo que mantienen la actualización) entonces yo normalizar los datos en primer lugar. Me tira a todos los espacios (espacios, tabulaciones, saltos de línea) a continuación, hacer un hash de ese contenido.

Me no incluyen el nombre de host de puerto trayectoria en el hash porque no sería añadir nada a la "huella digital". (Esa información es útil en el futuro cuando se tiene que volver a consultar el servidor web después de comparar el código HTML.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top