什么沙箱?
将一段你认为会影响其他代码的片段,放到一个独立的盒子中,这样它就和其他的代码隔离开了,你也可以从现实生活的一些例子来理解,比如某个人得了禽流感,那么医院会将他和我们隔离开来,那么不管他发生了什么事都不会影响到我们。
使用HTML5沙箱来保护你的网站。
前戏
一个网站做大了,就会有各种第三方广告,我想问问为什么会有这么多的广告,当然是赚钱。。。说一个网站不盈利也不正常,但是如果使用这些第三方的脚本,可能就会出现一些安全问题了,如果有人在脚本中做了一些手脚的话,那么网站就很有可能因此沦陷。
使用iframe的安全问题
浏览器在处理网页所使用的iframe元素时就像处理script标签一样。脚本可以被执行,该页面可以在浏览器窗口浏览,和浏览器插件可以执行。因此我们没有办法来控制这些第三方脚本。
HTML5对iframe的改进
外部的内容我们一般使用iframe标签,W3C为了保护网站的安全,对iframe进行了一些限制,同时也允许我们通过一些属性来自定义iframe限制项。
限制如下:
- 插件被禁用任何一种将不会执行:ActiveX、Flash或Silverlight插件。
- JavaScript被禁用,将不执行。
- 所有的内容都将在一个独力的盒子中处理,内容不能够遍历DOM或读取Cookie信息。
- 不能使用Ajax请求,cookies,本地存储。
- 表格不能提交
- 插件将不加载
自定义沙箱
在某些情况下,如果你需要针对不同的iframe做不同程度的限制,这是完全可以的。
allow-forms 允许表单提交
allow-popups允许Popup(open()窗口,showModalDialog(),target=”_blank”等)。。。。。。。。。。。。。。
allow-scripts允许JavaScript的执行。
......
这里只是对沙箱模式简单的介绍了一下,让你有一个整体的概念,如果想深入了解的话,还需要你多看看其他的文章。