端2端javascript堆栈安全吗?

端2端javascript堆栈安全吗?,javascript,jquery,json,node.js,couchdb,Javascript,Jquery,Json,Node.js,Couchdb,我想构建一个多租户云应用程序。我的堆栈是javascript/json end-2-end:用户在浏览器中输入数据,jquery将其转换为json,然后发送到我的node.js服务器,然后服务器将其作为json存储在couchdb中。获取数据时,json会反过来。如果用户向这个json注入了一些东西,那么在上面的堆栈中,这个json实际上是被回避的吗?如果是,我需要消毒。json清理的健壮性如何?或者沙箱会有帮助吗?它有多强大 这是一个多线程的环境,用户和公司的大量机密数据都会出现。Node.j

我想构建一个多租户云应用程序。我的堆栈是javascript/json end-2-end:用户在浏览器中输入数据,jquery将其转换为json,然后发送到我的node.js服务器,然后服务器将其作为json存储在couchdb中。获取数据时,json会反过来。如果用户向这个json注入了一些东西,那么在上面的堆栈中,这个json实际上是被回避的吗?如果是,我需要消毒。json清理的健壮性如何?或者沙箱会有帮助吗?它有多强大


这是一个多线程的环境,用户和公司的大量机密数据都会出现。

Node.js使用JSON.parse评估JSON数据。parse使用严格的JSON语法,不允许在数据字符串中声明函数。这还意味着数据键必须是双引号字符串,并且值只能是布尔值、数字、字符串、数组或对象

观看或观看

Caja是谷歌Caja消毒剂的实现 节点验证器是一个节点验证器/消毒剂
祝你好运

我建议深度防御,即多重重叠安全机制。理查德和帕夏都提出了很好的建议

另外要做的是使用特性。您可以用Javascript编写一个validate_doc_update函数。此函数将针对数据库的每次更改运行。该函数可以决定数据是否可接受


验证在CouchDB服务器本身中运行。因此,如果您具有良好的验证功能,则根本不可能存储坏数据。

谢谢。我假设这是对nodejs框架的描述。图书馆呢?是否有任何令人信服的理由让他们执行快速评估快捷方式,或者nodejs平台是否为他们执行解析?还有couchdb呢?我的理解是JSON.parse比eval安全1,但也快2。如果您担心安全性,我建议您永远不要使用eval。每个库都使用vm模块在自己的沙盒中执行:require函数使用vm模块。这可防止模块相互干扰。不需要从服务器上评估任何内容。谢谢。你认为它足够安全以保护公司数据吗?或者json净化程序的世界更多的是一个启发和最佳实践的集合,而这些并不总是黑客防护的?我认为nodejs还太年轻,不能成为公司的标准。但JSON并不是它的弱点,因为JSON太简单,非常安全。只有在JSON中传递的html和javascript可能是危险的,您应该考虑与您使用的每种数据类型相关的问题。如果你想创建真正安全的网站,你应该考虑积极的验证,而不是消极的。我的意思是,你应该决定应用什么,也不要否认什么。即使我使用反向代理,nodejs仍然太危险吗?还有,json中的js是指只有当我明确希望得到它并正确运行它时?否则它只是一个我永远不会执行的字符串。反向代理是个好主意,但它会减慢应用程序的速度。这对你很重要吗?如果您想要评估数据或将其结果放在值中启用html的页面上,则可以。关于的文章也将有助于了解风险和弱点。