Node你听说吗?Node的身世和所适用的场景
译器”(translator)(译注:作者的意思是说JSON本身的规则没有问题,反倒是各种语言的JSON实现的质量参差不齐,甚至有很多bug)。当一个语言的版本比较稳定时,基于这门语言的JSON解析器的运用和推广会比较快。结果是,JSON解析器变的越来越强大,以至于可以解析任意复杂的数据结构,即便这么复杂的数据结构根本不会实际用到。反之,每次迭代中(每次计算迭代的路径和数据类型的组合),也很有可能出现JSON解释器无法解析的数据结构(或者很深的JSON路径)的情况。
下图就是可选的JSON解释器 这并不是说JSON本身很糟糕,实际上,我们认为JSON的流行正是得益于其在新领域中的应用(译注:作者的言外之意是,在新领域中的初次JSON实现往往伴随很多问题)。对于新的领域,我们不禁要问:“这个新东东支持JSON吗?” 因此,JSON需要不断进化,需要不断的测试,不断的兼容新的平台。而作为程序员的,可能需要重新组织你的数据结构,或者等待新的版本出现以满足你的需求,或者干脆直接hack JSON。而这些正是我们所说的编程资源的浪费。 假设你可以自己动手丰衣足食实现一个解释器,即便这样,你也没有通过“抄近道”拣到便宜,而是用JavaScript重复造轮子而已。 而Node则规避了此类问题,刚刚你读到的文字——关于内嵌JSON的PHP5.2.0、关于将对象转换为数组、关于采用新的结构组织数据的方式、关于JSON中新特性的实现——这一切扰人的问题在Node中都将不复存在,因为前端通过JavaScript作JSON编码,后台使用JavaScript作JSON解码,永远不会出问题。 JavaScript中eval()的潜在隐患 正如我们不用将Node当作一门新的语言来对待一样,在Node中通过eval()来执行一段代码也和JavaScript中的eval()一样(不被推荐)。众所周知eval()是非常危险的。eval()用以执行一段文本表示的代码逻辑,可以理解为在文本框中“直接敲入SQL代码来执行查询”,这是不安全的,这实际上是恶意SQL注入。当每次eval()执行一段字符串的时候,(美国)中西部的一只小狗都会瑟瑟发抖,东部海滩上的某位母亲的脚趾会被刺伤并受到诅咒。eval()非常危险。网上有很多关于此的资料,这里不再赘述。可以用google查询“eval JavaScript evil”或者“eval JavaScript injection”获取更多信息。 当然,如果没有任何其他上下文的约束,在Node中也是允许使用eval()的,因此eval()的隐患在Node依然存在。毕竟N |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |