Web开发中客户端编码的安全趋势是什么?

时间:2014-02-20 22:06:32

标签: javascript node.js angularjs backbone.js

有许多新的框架,技术即将出现。并且很难跟进所有这些。令我困惑的一件事是客户端框架。我听说Angularjs,Backbone,Knockout,jsviews,knockback,SPA ......现在最受欢迎。但我无法理解安全概念是如何应用的?如果我们以查询表格数据库为例,现在可以通过指定表名和字段等来从客户端数据库进行查询...所以如果它以这种方式工作,那么其他所有人都可以编写另一个查询并获取所有查询其他信息。我很确定我在这里遗漏了一些非常重要的东西,并没有点击我的想法。所以请任何人解释一下我在哪里可以开始学习这些原语。

我真的很感激,而且我非常渴望学习,但我猜错了。

2 个答案:

答案 0 :(得分:3)

无论使用何种框架,安全问题仍然与移动应用程序相同,非常相似:

  1. 您可以在不受信任的环境中处理哪些数据
  2. 哪种处理可以应用于不受信任的环境
  3. “不受信任的环境”我指的是浏览器本身。您必须了解浏览器中执行的任何代码都可能被中等/良好的JS开发人员破坏。 数据安全受到同样的威胁:从客户端访问数据意味着您不再控制谁在使用它。

    一旦你处理了这个简单的问题,就可以更容易地决定服务器端必须保留什么,以及可以驱逐给客户端的内容。

    也就是说,有多种方法可以使数据/算法窃取更加困难:

    1. 缩小附带的混淆
    2. 双重数据验证(例如表格):客户端和服务器端
    3. 身份验证协议,如OAuth
    4. 通过webSockets二进制,而不是普通的json和ajax调用...
    5. 浏览器沙箱存在一些限制,但主要是为了保护本地计算机免受恶意JS代码的破坏。它不会保护您的代码或数据不被用户自己看到和操纵。

答案 1 :(得分:2)

我正在为我的一些项目使用角度。我没有使用过其他框架,但是在角度上你通常会使用API​​来获取数据。您不直接查询数据库。因此,保护​​数据的责任在API(后端)中比在角客户端中更为重要。

您可以使用OAUTH或其他您想要使api安全的安全方法。