如何防止公共计算机中的JS劫持

时间:2009-10-28 16:05:55

标签: javascript security

这个问题与JS劫持方案有关,现在是:

  

说Good先生有一个名为“iamtooinnocent.com”的网站,它加载了一个“x.js”文件来执行某些特定的任务,Bad先生是一个邪恶的网吧老板,他已经设置了一个重定向规则每当任何使用他的网吧的冲浪者访问Good的网站时,当请求“x.js”文件时,它将简单地将其重定向到其他邪恶的域名,其中包含一个带有恶意代码的不同“x.js”文件,这样Good的网站永远不会知道它有一个不同于它所要求的JS文件。

我希望我已经正确解释了这个场景,所以我的问题是如何防止这种情况?有没有办法防止这种情况发生?可以通过使用HTTPS提供JS文件来防止这种情况,虽然我不太确定吗?有人可以就这个问题给我一些看法吗?

提前致谢。

4 个答案:

答案 0 :(得分:7)

HTTPS是打击man-in-the-middle攻击的标准,就像您所描述的那样。它使用您站点的公共证书加密所有流量。所以不可能改变它。证书本身由第三方certificate authorities验证。

但它不能保证100%的安全性,因为它可以创建只在咖啡馆提供的本地假证书机构。

答案 1 :(得分:3)

如果计算机所有者反对你......你将会很难受。浏览器保证某些安全规则,但计算机所有者可以将其修改为他的邪恶之心的内容,你就不会更聪明......

答案 2 :(得分:3)

Web安全中的规则#1归结为:永远不要信任客户端。

请记住,客户可以对您发送的数据及其发送的数据做任何事情:

  • 修改后续请求的Cookie
  • 更改或添加/删除其他HTTP标头,欺骗用户代理
  • 在GET / POST
  • 中指定任何数据组合

您应该假设从HTTP到您的应用程序的任何数据都是恶意的,染色的,邪恶的混乱,并相应地消毒。

答案 3 :(得分:1)

这是他们提供电脑的网吧吗?如果是这样,你只需要信任所有者,因为你无法在其他人的机器上获得安全性。如果不出意外,他们可以安装硬件键盘记录器。

如果这是他们提供无线连接并且您带上笔记本电脑的那种,那么HTTPS应该是一种安全措施。如果您的浏览器正确处理证书和SSL,则应该可以转到具有经过验证的证书且安全的站点。如果您的浏览器出现任何问题,当然,网吧老板处于理想的位置,可以利用它,所以您可能需要关注已知的漏洞。

最好的举措不是光顾邪恶所有者经营的网吧,但这在世界某些地方可能很难。