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

标签 javascript node.js angularjs backbone.js

出现了许多新的框架、技术。跟踪所有这些都变得非常困难。让我困惑的事情之一是客户端框架。我听说Angularjs,Backbone,Knockout,jsviews,knockback,SPA...是现在最流行的。但我不明白安全概念是如何应用的?如果我们以查询表形式数据库为例,现在可以通过指定表名称和字段等从客户端数据库进行查询...因此,如果它以这种方式工作,那么其他人都可以编写另一个查询并获取所有其他信息。我很确定我在这里错过了一些非常重要的东西,但它并没有引起我的注意。所以请有人能解释一下我从哪里开始学习这些原语。

我真的很感激,我真的很渴望学习,但我想我搜索的方式是错误的。

最佳答案

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

  1. 您可以在不受信任的环境中处理哪些数据
  2. 可以在不受信任的环境中应用哪种处理方法

“不受信任的环境”是指浏览器本身。你必须明白,在浏览器中执行的任何代码都可能被中等/优秀的 JS 开发人员破坏。 数据安全遭受同样的威胁:从您的客户端访问数据意味着您不再控制谁在使用它。

处理完这个简单的问题后,就可以更轻松地决定哪些内容必须保留在服务器端,哪些内容可以移至客户端。

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

  1. 缩小带来的混淆
  2. 双重数据验证(例如表单):客户端和服务器端
  3. 身份验证协议(protocol),例如 OAuth
  4. 通过 webSocket 进行二进制,而不是普通的 json 和 ajax 调用...

浏览器沙箱有一定的限制,但主要是为了保护本地计算机免受恶意JS代码的破坏。它不能保护您的代码或数据不被用户本身看到和操纵。

关于javascript - Web 开发中客户端编码的安全趋势是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920699/

相关文章:

javascript - 在具有多个 $http.get 的服务中使用带有闭包的 Promise

javascript - 在 jQuery Mobile 选择上调用刷新()时出错

node.js - 多个字段的 Sequelize 分组会导致 Sequelize 错误

node.js - 如何插入 [-XXX.XXXXXXX, XX.XXXXXX] 格式的定位坐标?

javascript - 为什么 promise in factory 自 AngularJs 1.2.0 之后就不起作用了?

javascript - 使用 Ionic - 无法正确加载 Firebase - 错误 : Module 'firebase' is not available

javascript - useRef 和普通变量的区别

javascript - ASP.NET 隐藏字段不发布

javascript - ExtJS 5 : confusion with persisting changes to view model/form record

javascript - 在回调中调用 node.js 中的辅助函数?