【发布时间】:2013-04-21 15:01:05
【问题描述】:
这篇文章旨在就网络单页应用程序展开更深入的讨论。在有关该主题的大多数资源中,有些问题似乎没有明确的答案。 他们在我的脑海里
- 授权和认证。 由于整个 Web 应用程序都在客户端上,它可以在其任何功能中调用服务器,即使是那些用户无权访问的功能。用户看不到菜单这一事实并不妨碍该人调用 java 脚本函数。这在 MVC 应用程序中很容易处理,例如,通过使用基于 cookie 验证用户对特定功能的权限的控制器。但是,一些 SPA 应用只使用带有 Breeze 或 Web Api 的单个控制器,这使得授权服务器端无法实现。
- 客户端的内存管理 对于小型示例应用程序,这不是问题,但想象一个具有 100 个屏幕的应用程序或一个具有单个屏幕的应用程序,它会在一天内提取数千条记录。有了持久缓存,人们可以想象会出现很大的内存问题,尤其是在 RAM 很少且功率不足的设备上,例如手机或平板电脑。如果没有明确的内存管理愿景,一群开发人员怎么可能拥有 SPA 路线?
- 三层部署 一些 IT 部门永远不会允许带有连接字符串的应用程序连接到位于前端 Web 服务器上的数据库。我见过的每个 SPA 演示的结构都与此完全相同,包括 Breeze 或 Web Api。
- 不显眼的验证。 它将要求开发人员使用 MVC 部分视图和控制器,而不仅仅是 HTML 文件,这似乎与 SPA 概念背道而驰,同时它提供了一种非常强大的方法来轻松地将验证和 UI 合并到 Web 应用程序中来支持它。李>
- 在 url 中公开基于主整数的键。
这在 OWASP 中是非否。 因此,SPA 应用程序“似乎”针对安全要求很少且功能集小的领域。你怎么看?
谢谢。
【问题讨论】:
标签: security memory-management knockout.js breeze single-page-application