Nic*_*ole 13 javascript security html5 phishing pushstate
正如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
})
Run Code Online (Sandbox Code Playgroud)
这非常优雅地允许他们:
#,像Twitter那样- twitter.com/stackexchange →交通twitter.com/#!/stackexchange)我的问题是,JavaScript如何防止pushState一个网站使用模仿另一个网站,从而导致令人信服的网络钓鱼攻击?
至少看起来域名无法更改,但网站内的多条路径,可能是多个不相关且不可信的内容提供商?一条路径(IE / joe)是否可以模仿另一条路径(pushState / jane)并提供模仿内容,可能具有恶意目的?
我的理解是,这与管理,设置cookie和各种其他浏览器功能的同源策略完全一致XMLHttpRequest.假设如果它位于相同的域+协议+端口上,则它是可信资源.通常,作为Web开发人员,这是您想要(和需要)的,以便您的AJAX脚本能够工作,并且您的cookie可以在整个站点中读取.如果您正在运行一个用户可以发布内容的网站,那么确保他们不能对彼此的访问者进行网络钓鱼或键盘攻击是您的工作,而不是浏览器.
这里有一些关于FireFox人员正在考虑的pushState更多细节 - 看起来这对他们来说似乎不是问题.这里有另一个关于可能的pushState安全漏洞的讨论,但是关于能够在别人的URL的末尾隐藏恶意查询字符串是另一个问题.