出现了许多新的框架、技术。跟踪所有这些都变得非常困难。让我困惑的事情之一是客户端框架。我听说Angularjs,Backbone,Knockout,jsviews,knockback,SPA...是现在最流行的。但我不明白安全概念是如何应用的?如果我们以查询表形式数据库为例,现在可以通过指定表名称和字段等从客户端数据库进行查询...因此,如果它以这种方式工作,那么其他人都可以编写另一个查询并获取所有其他信息。我很确定我在这里错过了一些非常重要的东西,但它并没有引起我的注意。所以请有人能解释一下我从哪里开始学习这些原语。
我真的很感激,我真的很渴望学习,但我想我搜索的方式是错误的。
最佳答案
无论使用什么框架,安全问题仍然相同,并且与移动应用程序非常相似:
- 您可以在不受信任的环境中处理哪些数据
- 可以在不受信任的环境中应用哪种处理方法
“不受信任的环境”是指浏览器本身。你必须明白,在浏览器中执行的任何代码都可能被中等/优秀的 JS 开发人员破坏。 数据安全遭受同样的威胁:从您的客户端访问数据意味着您不再控制谁在使用它。
处理完这个简单的问题后,就可以更轻松地决定哪些内容必须保留在服务器端,哪些内容可以移至客户端。
也就是说,有多种方法可以使数据/算法窃取变得更加困难:
- 缩小带来的混淆
- 双重数据验证(例如表单):客户端和服务器端
- 身份验证协议(protocol),例如 OAuth
- 通过 webSocket 进行二进制,而不是普通的 json 和 ajax 调用...
浏览器沙箱有一定的限制,但主要是为了保护本地计算机免受恶意JS代码的破坏。它不能保护您的代码或数据不被用户本身看到和操纵。
关于javascript - Web 开发中客户端编码的安全趋势是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920699/