HTML 5通过sandbox属性提升iFrame的安全性
转自:InfoQ
作者
Abel Avram
译者
张龙
发布于
2010年1月30日 上午12时6分
目前Web Hypertext Application
Technology Working Group
(WHATWG)正与W3C
通
力合作建立HTML 5标准,在过去3个月中,该项工作已经进入到了WHATWG的“Last Call
”阶
段。在这期间,变化最大的一个特性就是iframe元素的sandbox属性。sandbox属性可以防止不信任的Web页面执行某些操作。
HTML
5
规范的编辑Ian Hickson谈到了
sandbox的好处
,它可以防止如下操作:
访问父页面的DOM(从技术角度来说,这是因为相对于父页面iframe已经成为不同的源了)
执行脚本
通过脚本嵌入自己的表单或是操纵表单
对cookie、本地存储或本地SQL数据库的读写
HTML
5的修订历史页面
还提到了sandbox的其他特性:
禁用插件
禁止其他浏览上下文的导航
禁止弹出窗口和模式对话框
iFrames因安全问题而臭名昭著,这主要是因为iFrames常常被用于嵌入第三方内容,而后者则可能会执行某些恶意操作。sandbox通过
限制被嵌入内容所允许的操作而提升iFrames的安全性。这种方式将沙箱内容与父页面进行了分离,因此限制了被嵌入内容的权限。
与sandbox一起出来的还有其MIME类型:text/html-sandboxed。Hickson说到:
text/html-sandboxed
MIME类型确保用户不会访问到不可信的内容。它包含两部分内容:首先,如果用户直接访问页面时,浏览器不可以渲染那些具有text/html-
sandboxed
MIME类型的页面。目前所有浏览器都支持这一点,这些浏览器会下载页面的标记但不会渲染页面;其次,支持sandbox属性的浏览器需要渲染具有
text/html-sandboxed
MIME类型的iframes(但会受到sandbox属性中所设定的权限限制)目前为止,还没有浏览器实现这一点,Google
Chrome也是如此(它会渲染父页面,但却下载iframe内容而非在iframe中对其进行渲染)。因此目前还没法使用该项技术,除非Google更
新Chrome以支持这一点(从理论上来说,其他的浏览器厂商在实现了对sandbox属性的支持后就会实现该技术,让我们拭目以待吧)。
目前,只有Google Chrome
4.0使用了sandbox,Firefox、IE8和Safari都还没有实现这一点,但相信不久之后这些浏览器都会实现的。围绕着HTML 5
<video>元素发生了很多事情
,Google通过H.264
标准对其进行实现,而
相关文档:
修改 checked 属性
var sex = '${entity.sex}';
if(sex == '男')
{
//document.all.sexCk1.checked=true; 这种火狐不支持
&nbs ......
<html:link> 标签用于生成HTML <a> 元素。<html:link> 在创建超链接时,有两个优点:
(1) 允许在URL 中以多种方式包含请求参数。
(2) 当用户浏览器关闭Cookie 时,会自动重写URL,把SessionID 作为请求参数包含在URL 中,用于跟踪用户的Session 状态。
<ht ......
百度了下 大体知道 如下区别:
id 代表唯一 ,在整个页面是唯一的,不能重复。
name 可以重复,整个页面的 name 可以都一样
用在JavaScript 中 时
document.getElementById("str") 返回的是 唯一的数据。
document.getElementsByName("str") 返回的是个数组。
还有什么区别?有待路人指证! ......
HTML中实现右键菜单功能
我们使用的应用系统很多都有右键菜单功能。但是在网页上面,点击右键一般显示的却是IE默认的右键菜单,那么我们如何实现自己的右键菜单呢?下面将讲解右键菜单功能的实现原理和实现代码。
实现原理
在HTML语言中,基本上每个对象都有一个oncontextmenu事件,这个事件就是鼠标的右键单击 ......
在Web开发中,常常要用到两个窗口之间互相传值。下面谈谈父子窗口之间的传值:
一:使用Open开启子窗口
1:单值传递
通过open开启的子窗口比较好处理。
页面窗口1.html代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body>
<form name=" ......