Como se ve en GitHub's blog, han implementado la función HTML5's JavaScript pushState
para la exploración de árbol (para navegadores modernos), que trae navegación AJAX without Hash Bangs.¿Cómo protege pushState contra posibles falsificaciones de contenido?
El código es simple:
$('#slider a').click(function() {
history.pushState({ path: this.path }, '', this.href)
$.get(this.href, function(data) {
$('#slider').slideTo(data)
})
return false
})
Esta muy elegantemente les permite:
- Solicitud de los justos el nuevo contenido a través de AJAX en lugar de una página completa
- animar la transición
- Y cambiar los navegadores URL (no solo el
#
, como Twitter hace — twitter.com/stackexchange → twitter.com/#!/stackexchange)
Mi pregunta es, ¿cómo evitar que JavaScript contra el uso de pushState
por un sitio a imitar a otra, lo que resulta en un contundente phishing attack?
Por lo menos, parece que el dominio no se puede cambiar, pero ¿qué hay de las múltiples rutas dentro de un sitio, potencialmente por múltiples proveedores de contenido no relacionados y desconfiados? ¿Podría una ruta (I.E. /joe) imitar esencialmente otra (pushState /jane) y proporcionar contenido imitativo, con fines posiblemente maliciosos?