如果我在我的网站上放置了一个
javascript游戏并且游戏的一部分要求用户地址(例如,为了引用本地地标),有可能某些第三方可能会劫持我的游戏以发送用户地址的方式?
我知道javascript不是很安全,但我也认为没有人能够在不破坏我的网站的情况下劫持我的javascript代码,所以在这方面它是安全的.
我天真吗?
只是问,因为我对一个我想要思考的游戏有所了解.
最佳答案 如果您认为您的用户的地址确实是一个秘密,那么您可能需要做一些工作:
XSS攻击
您需要非常小心如何显示用户输入.例如,如果我说我的名字是< script> alert(‘hello world’)< / script>,你真的打算在网站上打印出来吗?如果是这样,那么可以将自己的JavaScript插入到您的应用程序中. Here’s an example of an XSS attack和Wikipedia有更多信息.如果攻击者可以插入自定义JS,他们可以拦截秘密用户输入,如地址,密码或cookie.
HTTPS
当您的Web服务器将其消息发送回用户时,该消息不会直接发送到用户的计算机.它首先通过接力赛中的中间计算机.如果攻击者在接力赛中控制其中一台计算机,他们可以修改服务器的消息并插入自己的JS.攻击者再次获胜.为了避免这种情况,你需要HTTPS,这是一个加密消息的协议.你还需要一种叫做证书的东西; StartSSL以低廉的价格出售它们.
请注意,攻击者不必是坐在数英里外的某个公司或政府来控制中间计算机.例如,可能是在校园内未加密的Wi-Fi网络上运行Firebug的人.
但是真的
构建Web应用程序的更好方法是永远不要将用户地址发送回服务器.信息安全的第一条规则之一就是难以做到;你越能依赖别人的工作就越好.相反,也许在JS代码中保留一个固定的地标列表.或者使用已经通过HTTPS运行的Google地图等服务提供的公共API.