4

如果我在我的网站上放置了一个 javascript 游戏,并且游戏的一部分要求提供用户地址(例如,为了引用本地地标),那么某些第三方可能会劫持我的游戏以按照他们的方式发送用户地址?

我知道 javascript 不是很安全,但我也认为没有人能够在不入侵我的网站的情况下劫持我的 javascript 代码,因此在这方面它是安全的。

我是不是太天真了?

只是因为我有一个我正在尝试思考的游戏的想法而询问。

4

1 回答 1

2

如果您认为您的用户地址确实是一个秘密,那么是的,您可能需要做一些工作:

XSS 攻击

您需要非常小心如何显示用户输入。例如,如果我说我的名字是<script>alert('hello world')</script>,你真的要在网站上打印出来吗?如果是这样,那么可以将自己的 JavaScript 插入到您的应用程序中。这是一个 XSS 攻击的例子维基百科有更多的信息。如果攻击者可以插入自定义 JS,他们就可以拦截秘密的用户输入,例如地址、密码或 cookie。

HTTPS

当您的 Web 服务器将其消息发送回用户时,该消息不会直接发送到用户的计算机。它首先通过接力赛中的中间计算机。如果攻击者在接力赛中控制了其中一台计算机,他们可以修改服务器的消息并插入自己的 JS。再一次,攻击者获胜。为了避免这种情况,您需要HTTPS,它是一种用于加密消息的协议。您还需要一种叫做证书的东西;StartSSL以实惠的价格出售它们。

请注意,攻击者不必是远在几英里外的公司或政府来控制中间计算机。例如,可能是有人在您校园的未加密 Wi-Fi 网络上运行Firebug 。

但真的

构建 Web 应用程序的更好方法是一开始就永远不要将用户地址发送回您的服务器。信息安全的首要规则之一是很难做到正确。你越能依赖别人的工作越好。相反,也许在 JS 代码中保留一个固定的地标列表。或者使用 Google Maps 等服务提供的公共 API,该 API 已经通过 HTTPS 运行。

于 2013-08-06T02:47:05.903 回答