javascript中的沙箱并非传统意义上的沙箱,只是一种语法上的hack写法而已,javascript中处理模块依赖关系的闭包被称之为沙箱,和 ajax一样,这种sandbox coding风格是一种现象,而不是本质,本身并无对错之分,要看你怎么用,因此,理解并合理运用才是我们对“js沙箱”的一个正确的基本态度,“沙箱无用论”是很业余的观点。
——沙箱是一个工具。就和键盘和鼠标一样,我们需要他,但更要看我们怎么用他。

目前来看,js沙箱的优势在于代码的组织并向“应用”提供架构支持,js沙箱解决不了全局变量污染,多版本库的融合等基本问题,很多人对js沙箱抱有太高奢望,也是不对的。
—— 沙箱是一把利器。就像AK是巷战之王,可还是有人硬要拿它打飞机。

js沙箱已经开始影响B端开发,而且在前后端融合方面具有更多前瞻性的优势。
——沙箱是一把钥匙。ajax的流行改变了B端开发模式,我们有理由期待js沙箱在企业级开发中的表现。

当JavaScript第一次发布的时候,有一个可以理解的忧虑,那就是打开一个页面可能会直接在机器上执行一段代码。如果JavaScript中含有一些有害的代码,比如删除所有Word文档,或者更糟的是,向脚本的编写者复制这些Word文档,那该怎么办呢?

为了防止这种情况发生,同时也为了让浏览器的用户放心,JavaScript构建为只在沙箱中运行。沙箱是一个受保护的环境,在这个环境中,脚本不能访问浏览器所在的计算机资源。

另外,浏览器所实现的安全条件高出并超过了JavaScript语言所建立的最低条件。这些都定义在一个与浏览器相关的安全策略中,它决定了脚本能做什么不能做什么。例如,一个这样的安全策略规定脚本不能与脚本所来源的域以外的页面通信。大多数浏览器还提供了定制这一策略的方式,这可以使脚本所运行的环境限制变得更严或更松。

不幸的是,即便是有了JavaScript沙箱和浏览器安全策略,JavaScript还是经过了一段难熬的时光,黑客已经发现并充分利用了JavaScript的一些错误,有些错误与浏览器无关,有些错误与浏览器有关。较严重的一个是跨站脚本(cross-site scripting,XSS)。这实际上是一类安全破坏(其中一些通过JavaScript,另一些通过浏览器的漏洞,还有一些通过服务器),它能够导致 cookie dao qie、暴露客户端或网站的数据,或导致许多其他的严重问题。

从语言学的角度上来说,允许代码无节制地使用全局变量,是最错误的选择之一。而更可怕的,就是一个变量"可能"成为全局的(在未知的时间与地点)。但是这两项,却伴随JavaScript这门语言成功地走到了现在。

javascript中的沙箱相关推荐

  1. 十分钟,快速理解JavaScript中的闭包概念

    海阔凭鱼跃,天高任鸟飞.Hey 你好!我是猫力Molly 闭包已经是一个老生常谈的问题了,不同的人对闭包有不同的理解.今天我来浅谈一下闭包,大家一起来就"闭包"这个话题,展开讨论, ...

  2. 浅析 JavaScript 中的 函数 uncurrying 反柯里化

    柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...

  3. JavaScript中,this的绑定规则

    对于 JavaScript 新手来说,this 是非常基础同时也难以理解的知识点. 比如下面的代码,this 指向就有三种方式. 在<你不知道的 JavaScript>一书中,我总算比较清 ...

  4. Javascript中undefined,NaN等特殊比较

    以下内容转自: http://blog.csdn.net/hongweigg/article/details/38090093 1.问题:在Javascript中,typeof(undefined) ...

  5. Javascript中二进制数据处理方法

    Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html

  6. JavaScript 中的有限状态机

    http://www.ibm.com/developerworks/cn/web/wa-finitemach/ JavaScript 中的有限状态机 Page navigation 系列文章 有限状态 ...

  7. 在Javascript中使用面向对象的编程

    by Mike Koss March 26th, 2003 这是一篇,我个人认为最好的,Javascript面向对象编程的文章.翻译不好的地方,还望大家指正,谢谢. 如果您需要,可以访问下面的地址取得 ...

  8. 取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...

    统一资源定位符(缩写URL)是对Web资源(网页,图像,文件)的引用.URL指定资源位置和检索资源的机制(http,ftp,mailto). 例如,这是此博客文章的URL: 通常,您需要访问URL的特 ...

  9. 在javascript中判断类型

    String 一个字符串始终是一个字符串,所以这一块是很容易.除非使用new(new String)调用,否则typeof将返回"object".所以也要包含那些可以使用的字符串i ...

最新文章

  1. 新僵尸病毒猖獗 Facebook成攻击目标
  2. 用创新技术增进互联网广告的行业价值
  3. HTML form 标签的 action 属性
  4. 回调函数 相当于线程_Java中的回调机制,这篇给你整的明明白白的
  5. Fiori Elements的metadata和ui annotation
  6. spring框架(六)之拦截器
  7. oracle层级计算推演,云和恩墨的两道Oracle面试题
  8. 【图说word】宏二
  9. 【TensorFlow】TensorFlow函数精讲之value()
  10. oracle解锁用户
  11. vue的第一份正式源码
  12. 雷迪9000使用说明_是完结还是继续辉煌?华为P50系列曝光,麒麟9000或被替代
  13. 万能地图下载器X3版本终止升级维护
  14. 有趣的开源软件:语音识别工具Kaldi (一)
  15. iphone和iPad开发的区别
  16. 什么是TPS,什么是QPS?
  17. 通过Akka学习指数退避(Exponential Backoff)
  18. OCR技术1-字符识别技术总览
  19. DPM learn.cc编译
  20. VBA之正则表达式(1)-- 基础篇

热门文章

  1. RFID技术知识点搜集
  2. 现代C++ 类型推导
  3. js中childNodes为什么输出#text:childNodes详解
  4. JavaScript运算符
  5. Windows命令之mklink基础
  6. 三个关键数字变化,剖析中国智能手机市场的趋势及其影响
  7. windows10 无法调节屏幕亮度(远程软件导致)
  8. 【数据结构】什么是内排序、外排序?内排序详细介绍
  9. 数据透视之——李白诗集
  10. jeesite解决跨域问题