Come visto in GitHub's blog, hanno implementato la funzione HTML5's JavaScript pushState
per la navigazione ad albero (per i browser moderni), portando la navigazione AJAX without Hash Bangs.In che modo pushState protegge da potenziali contraffazioni di contenuti?
Il codice è semplice:
$('#slider a').click(function() {
history.pushState({ path: this.path }, '', this.href)
$.get(this.href, function(data) {
$('#slider').slideTo(data)
})
return false
})
Questo permette loro molto elegantemente a:
- Richiesta il proprio l'nuovi contenuti attraverso AJAX invece di una pagina intera
- animare la transizione
- E cambiare l'URL del browser (non solo lo
#
, come Twitter fa — twitter.com/stackexchange → twitter.com/#!/stackexchange)
La mia domanda è, come si fa a prevenire JavaScript contro l'uso di pushState
da un sito web di imitare un altro, con un conseguente convincente phishing attack?
Per lo meno sembra che il dominio non possa essere modificato, ma per quanto riguarda i percorsi multipli all'interno di un sito, potenzialmente da più fornitori di contenuti indipendenti e non fidati? Potrebbe un percorso (I.E. /joe) essenzialmente imitare un altro (pushState /jane) e fornire contenuto imitativo, con possibili scopi dannosi?