javascript - SproutCore 安全和身份验证问题

标签 javascript web-applications sproutcore

我一直在努力学习一些关于 SproutCore 的知识,按照“Todos”教程,我有几个无法在网上找到的问题。

  1. SproutCore 应该将所有业务逻辑转移到客户端。怎么会不安全呢?恶意用户可以轻易篡改代码(因为它都在客户端上)并改变应用程序的行为方式。我怎么错了?
  2. SproutCore 使用“DataStores”,其中一些可以是远程的。如何避免恶意用户不自行与后端交互?使用某种 API key 是行不通的,因为代码在客户端。这里有某种约定吗?有任何想法吗?这真的让我很烦恼。

提前致谢!

PS:任何人都认为Cappuccino是更好的选择?我决定使用 SproutCore,因为 Cappuccino 的文档看起来很糟糕,尽管 SproutCore 的文档并没有变得更好。

最佳答案

伊恩

您的担忧是有道理的。问题是,它们适用于所有客户端代码,无论是什么框架。所以:

Web 应用程序是复杂的东西。将处理转移到客户端是一件好事,因为它加快了应用程序的响应速度。但是,服务器必须验证所有数据输入,就像在任何其他 Web 应用程序中一样。

此外,所有 Web 应用程序都应使用系统安全中普遍存在的众所周知的身份验证/授权范例。身份验证意味着您必须验证用户是他们所说的人,并且他们可以使用该系统,而授权意味着服务器必须验证用户可以做他们正在尝试的事情,例如他们可以创建新的数据条目,还是编辑现有的数据条目。不向用户提供他们不允许执行的 UI 选项是一个很好的设计,但您不应该依赖于此。

所有网络应用程序都必须做这些事情。

关于“与后端交互”的问题:同样,所有网络应用程序都有这个问题。您可以打开 firebug/webkit,查看 RIA 在其操作中使用的所有 xhr 请求,并模仿它们尝试在该系统上执行某些操作。同样,这个问题由您必须实现的身份验证/授权检查来处理。任何人都可以使用任何网络客户端向服务器发送请求。由开发人员验证该请求。

SproutCore 中的数据源只是关于 SC 应用程序如何与服务器交互的抽象。然而,归根结底,SC 所做的只是向服务器发出 XHR 请求,就像任何其他 RIA 一样。

关于javascript - SproutCore 安全和身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769081/

相关文章:

PHP 或 Javascript 或其他 - 在图像上绘制简单的形状?

javascript - 芽核后端

selenium-webdriver - 识别通过框架生成而不是通过原始 HTML 构建的对象

jsp - Java EE 还是普通的 Web 应用程序?

现在流行的java管理客户端

java - Apache Tomcat 无法在 Windows 10 上启动 2 个 Web 应用程序

javascript - 使用Sproutcore 1.6实现下拉列表

javascript - MongoDB-如果不存在则插入,否则跳过

javascript - 从 karma 测试访问projectDir?

javascript - 改变日历设计内容的方向