使用Backbone.js,Require.js和Laravel的SPA安全性

时间:2012-11-19 13:59:26

标签: security backbone.js requirejs laravel

我目前正在寻找开发下一个Web应用程序的最佳方式。我正在考虑使用Backbone.js并构建一个单页面应用程序。但我真的无法想象如何保护我的应用程序,因为几乎所有内容都在客户端完成。当然,我可以阻止用户访问我的RESTful Api,这样他们就无法访问我的数据。但是仍然可以访问所有视图/模型/集合/模板js文件。

或者有一种已知的方法用php(laravel)提供js文件,这样我就可以只为相应的用户提供所需的文件。

我通过搜索网络找不到解决方案。但我不认为我是一个孤独的人需要一种清洁安全的身份验证方法,包括不同的用户权限。

提前谢谢!

4 个答案:

答案 0 :(得分:2)

您的后端应用程序将从后端(= API)获取数据,并可能会发回一些更改。 只要您的后端受到保护,此代码就不会出现“安全漏洞/漏洞”。 如果您害怕人们窃取您的代码,您可以随时缩小JS(请查看grunt.js和almond.js)

为了保护你的后端,你可以使用Laravel的auth类和前面提到的auth过滤器。

除了普通的身份验证之外,您还可以实现角色,您可以将角色分配给特定用户,让他们或多或少地访问您后端中的某些资源。

答案 1 :(得分:0)

这是我尝试的方法:

将应用程序分为两部分。

一部分 - 通过常规Laravel Auth在单独的页面上登录,然后当用户登录时在另一个视图中提供单页应用程序。

这不会有用吗?

答案 2 :(得分:0)

Web服务与您构建的任何其他Web应用程序没有什么不同。在一天结束时,您将向客户端(也是攻击者)公开功能。无论客户端的实现方式如何,如果您暴露危险的功能,您将被黑客入侵。

拥有会话状态,跟踪用户ID并确保用户仅访问他们允许访问的资源。

答案 3 :(得分:0)

我认为JS /模板文件所暴露的内容并不重要。实质上,您应该只允许与经过身份验证的用户进行数据交互。将此视为两个独立的应用程序。

  1. 前端应用程序登录,并存储cookie(或使用其他一些持久性)。
  2. 然后,后端应用程序使用持久身份验证来验证每个用户对数据的请求以及每个用户操作。
  3. 这样您就不必担心安全性,客户端只能获取服务器允许的数据,同样,它只能在服务器允许的情况下与数据交互。你不应该依赖客户端来保证安全,甚至登录,否则一些恶意用户可以保存所有前端代码并在没有身份验证的情况下使用它。