从GitHub 的博客中可以看出,他们已经实现了HTML5 的 JavaScriptpushState
功能用于树浏览(适用于现代浏览器),带来了没有 Hash Bangs的 AJAX 导航。
代码很简单:
$('#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
一个网站使用模仿另一个网站,从而导致令人信服的网络钓鱼攻击?
至少域似乎无法更改,但是站点内的多个路径可能由多个不相关且不信任的内容提供者提供呢?一条路径 (IE /joe ) 是否可以本质上模仿另一条路径 (pushState /jane ) 并提供具有可能恶意目的的模仿内容?