我正在考虑 phonegap 游戏应用程序的架构,作为许多分布式游戏应用程序,它将充当服务器的客户端。它将需要用户名密码身份验证。我计划使用 AJAX 与我的服务器通信。但是,我有几个关于安全性的问题。他们来了:
- 如何确保请求来自我的游戏而不是其他任何人?例如,如何避免有人可以向我的游戏调用的服务器上的脚本发送 POST 请求?
- 如何确保数据传输安全?使用 https (SSL) url 传输数据是否足够?
- 实施用户身份验证的最佳方法是什么?生成用于通信的令牌?还有什么?
谢谢 !
我正在考虑 phonegap 游戏应用程序的架构,作为许多分布式游戏应用程序,它将充当服务器的客户端。它将需要用户名密码身份验证。我计划使用 AJAX 与我的服务器通信。但是,我有几个关于安全性的问题。他们来了:
谢谢 !
1) 我如何确保请求来自我的游戏而不是其他任何人?例如,如何避免有人可以向我的游戏调用的服务器上的脚本发送 POST 请求?
不幸的是,你不能。因为一旦客户端代码离开您的手,您就无法控制它,因此无法确保没有其他人使用您用户的登录凭据发出请求(假设有一些)。您可以通过要求某些用户进行身份验证来确保他们正在访问您的服务器。只要他们不损害他们的凭据,那么您就可以确定。如果身份验证不是一种选择,请参阅此问题以了解有关使某人更难(但并非不可能)模仿您的客户的一些想法。
2) 我怎样才能保证数据传输的安全?使用 https (SSL) url 传输数据是否足够?
是的。使用 HTTPS/SSL/TLS。这通过加密提供了机密性和完整性。
3) 实施用户身份验证的最佳方法是什么?生成用于通信的令牌?还有什么?
令牌是一个不错的选择。有关令牌实现的一些信息,请参阅此问题。这适用于 RESTful 服务,但基本方法是相同的。