Как показано в блоге GitHub, они внедрили HTML5 JavaScript pushState
для просмотра дерева (для современных браузеров), в результате чего AJAX-навигация без Hash Bangs.
Код прост:
$('#slider a').click(function() {
history.pushState({ path: this.path }, '', this.href)
$.get(this.href, function(data) {
$('#slider').slideTo(data)
})
return false
})
Это довольно элегантно позволяет им:
- Запросите только новый контент через AJAX вместо полной страницы
- Анимировать переход
- И измените URL-адрес браузера (а не только
#
, так как Twitter делает twitter.com/stackexchange → twitter.com/#!/stackexchange)
Мой вопрос: как JavaScript предотвращает использование pushState
на одном веб-сайте для подражания другому, что приводит к убедительной фишинг-атаке
По крайней мере, кажется, что домен не может быть изменен, но как насчет нескольких путей внутри сайта, потенциально нескольких несвязанных и ненадежных поставщиков контента? Может ли один путь (I.E. /joe) по существу имитировать другой (pushState /jane) и предоставлять имитирующий контент, возможно, в злонамеренных целях?