3

I'm currently searching the best way for developing my next webapplication. I'm thinking about using Backbone.js and build a single page application. But I really can't imagine how to secure my app since nearly everything is done on client side. Of course I just could prevent the users from accessing my RESTful Api so they would not have access to my data. But all the view/model/collection/template js files are still accessible.

Or is there a known way to serve the js files with php (laravel), which would allow me to only serve the files I need for the respective user.

I just couldn't find a solution by searching the Web. But I just don't think that I am the lonely person who needs a clean and secure authentication method including different user rights.

Thank you in advance!

4

4 回答 4

2

您的后端应用程序将从后端(= API)获取数据,并可能发回一些更改。只要您的后端是安全的,此代码就不能有“安全漏洞/泄漏”。如果你害怕别人窃取你的代码,你可以随时缩小 JS(检查 grunt.js 和 almond.js)

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

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

于 2012-11-20T18:41:24.097 回答
0

这是我会尝试的方法:

将应用程序分成两部分。

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

这不行吗?

于 2012-11-19T18:13:11.833 回答
0

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

  1. 前端应用程序登录,并存储 cookie(或使用其他一些持久性)。
  2. 然后,后端应用程序使用持久身份验证来验证每个用户对数据的请求以及每个用户操作。

这样您就不必担心安全性,客户端只能获取服务器允许的数据,同样,它只能在服务器允许的范围内与数据交互。无论如何,你不应该依赖客户端来确保安全,即使是登录的,否则一些恶意用户可能会保存你所有的前端代码并在没有身份验证的情况下使用它来对付你。

于 2012-11-20T00:15:28.413 回答
0

Web 服务与您构建的任何其他 Web 应用程序没有什么不同。归根结底,您将功能暴露给客户端(也是攻击者)。不管客户端是用什么实现的,如果你暴露了危险的功能,你就会被黑客入侵。

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

于 2012-11-20T00:02:36.317 回答