用于通信Ionic App和Laravel RESTful API的秘密令牌

时间:2015-10-27 10:44:45

标签: php android rest security

我正在开发一个消耗来自Laravel 5 RESTful API的数据的Ionic App。除用户创建外,所有连接都受用户名/密码和用户角色的保护(GET,POST等)。

我对安全性的第一个疑问是禁止来自App外部的连接,避免数千个用户创建,使我们的服务器资源过载。

我的想法是,当用户安装应用程序并首次打开它时,创建一个将在每个连接中发送的秘密令牌。然后检查设备UUID和密钥令牌,以确保这是一个授权的应用程序。

您如何看待以这种方式保护连接?有一个更好的主意吗?

2 个答案:

答案 0 :(得分:1)

您需要查看JWT(Jot)JSON Web令牌,它们将解决安全问题。这可以包含用户ID和其他数据,如访问级别。不是安全信息或卡信息。

当用户对Laravel进行身份验证时,会将它们发回给您存储在本地或会话存储中的JWT,这将取代后端会话。

它是由后端使用可由前端解密的部分并使用密钥加密签名生成的,如果其中的任何一个被篡改,则会失败并拒绝访问。

每个请求angular都会使用请求拦截器将令牌附加到头部,Laravel中间件会解密它并允许访问他们需要的路径或者返回错误代码“404”。

如果在安装此身份验证层后,您可以限制后端用户级别的使用情况。

但是这应该排除你的大多数问题,它有点改变思路,但它确实有效,它解决了你用ajax调用得到的很多会话问题,并且它使负载平衡变得更容易,因为所有服务器都在寻找它可以管理的令牌。

答案 1 :(得分:0)

我也遇到了同样的问题。但是在谷歌搜索了一段时间后,我得出结论,你可以对黑客提出几个墙,但对于那些在黑客攻击你的应用程序(忍者黑客)的人会找到以恶意方式使用你的应用程序的方法。 我还发现了各种可以保护后端服务器的方法(google之后)。这些步骤通常会使您难以恶意使用您的应用。

  1. 您可以使用某种算法加密字符串url,并在程序中使用加密字符串即。 https:\ google.com \被加密成类似\ h09ae \ hff00 \ hebab \ h ....然后在程序字符串url =“\ h09ae \ hff00 \ hebab \ h ..”这样有人反编译应用程序'找到你的服务器后端网址。在这种情况下,您需要先解密字符串URL,然后才能使用它。

  2. 使用HTTPS并在请求正文中发送敏感数据

  3. 您可以使用Google令牌验证请求是否来自设备。为此,您必须使用Google API控制台。请参阅此链接以获取有关此topic

  4. 的正确Android教程
  5. 最后,创建apk时使用的签名密钥是唯一的,并确保您的apk不被篡改。因此,在将上传到谷歌播放之前生成签名密钥的哈希密钥并将其保存在您的服务器中,并以编程方式获取签名密钥的哈希值,并将其发送给您的后端。

  6. 希望对你有帮助..