gpt4 book ai didi

javascript - pushState 如何防止潜在的内容伪造?

转载 作者:技术小花猫 更新时间:2023-10-29 12:41:13 26 4
gpt4 key购买 nike

GitHub's blog 所示, 他们实现了 HTML5's JavaScript pushState树浏览功能(适用于现代浏览器),带来 AJAX 导航 without Hash Bangs .

代码很简单:

$('#slider a').click(function() {
history.pushState({ path: this.path }, '', this.href)
$.get(this.href, function(data) {
$('#slider').slideTo(data)
})
return false
})

这非常优雅地允许他们:

  1. 通过 AJAX 请求新内容而不是整个页面
  2. 动画过渡
  3. 并且更改浏览器 URL (不仅仅是 #,就像 Twitter 那样 — twitter.com/stackexchangetwitter.com/#!/stackexchange)

我的问题是,JavaScript 如何防止一个网站使用 pushState 来模仿另一个网站,从而产生令人信服的 phishing attack

至少域似乎无法更改,但是站点内的多个路径(可能由多个不相关且不信任的内容提供商)怎么办?一条路径 (IE /joe) 能否从本质上模仿另一条路径 (pushState /jane) 并提供可能带有恶意目的的模仿内容?

最佳答案

我的理解是,这与 Same Origin Policy 完全一致管理 XMLHttpRequest、设置 cookie 和各种其他浏览器功能。假设是如果它在同一个域+协议(protocol)+端口上,它就是一个可信资源。通常,作为 Web 开发人员,这就是您想要(和需要)的内容,以便让您的 AJAX 脚本正常工作,并使您的 cookie 在整个站点中可读。如果您正在运营一个用户可以发布内容的网站,那么您的工作就是您的工作,而不是浏览器的工作,以确保他们不会对其他访问者进行网络钓鱼或键盘记录。

还有一些detail on what the FireFox folks are thinking about pushState - 这对他们来说似乎不是问题。还有一个关于 possible pushState security hole here 的讨论,但这是一个不同的问题,关于能够在其他人的 URL 末尾隐藏恶意查询字符串。

关于javascript - pushState 如何防止潜在的内容伪造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com