·JavaScript开启
·禁止读取Internet内容
·禁止读取非同级目录及子目录下的内容
·禁止单击、加载本地域链接
Chrome
·JavaScript开启
·禁止读取Internet内容
·禁止单击、加载file协议的链接
·下载的html页面会标记”MOTW”
Opera
·JavaScript开启
·只允许访问本地内容
·禁止单击、加载file协议的链接
Safari
禁止访问本地文件、包括Safari中运行的Java Applet
·禁止单击、加载file协议的链接
对本地网页文件的限制可以通过一些设置重载。Chrome中可以通过命令行—allow-file-access-from-files允许访问本地文件,Safari也可以在选项中关闭对本地文件的访问限制。
4.3 伪协议
在浏览器中,有一些用于访问资源或脚本的协议,称作伪协议,行为’about’只是一个URI方案名,它并不是协议,为了和正式的网络协议区分,将其简称为’伪协议’。 伪协议是一种非标准化的协议,在浏览器处理时通常不会远程获取数据,甚至不会创建独立的上下文环境来展示部分伪协议的结果。在不同的浏览器中,常见的伪协议解析方式各异。
4.3.1 data伪协议
Firefox、Chrome和Opera等浏览器支持data URI协议(IE 6不支持),格式非常简单:
data:资源类型;编码,内容
即以data:开头,后分别制定MIME类型,字符集,数据是否已Base64编码,以及数据部分。
如果没有指定MIME类型,那么浏览器就会用默认的text/plain代替;
如果没有指定charset,浏览器会用默认的‘;charset=US-ASCII’代替;
简单来说,要生成一个html资源,可以这样:
data:text/html;ascii,<html><title>hello</title><body>world</body></html>
你把上面的链接复制到浏览器地址栏,打开就能看到效果了。
另外,IE对data伪协议有一些特殊的处理,例如IE8限制data URI最大长度为32KB,而IE9则没有这个限制。在IE中,data伪协议只可用于:
·object(仅可用作图片)
例如<object type=”image/png” data=”data:xxx”></object>
例如<img src=”data:xxx”/>
例如<input type=”image” src=”data:xxx”/>
例如<link type=”text/css” rel=”stylesheet” href=”data:xxx”/>
例如.picture { background: url(data:xxx) }
而且出于安全考虑,IE中data URI只可当作图片资源使用,不能用在导航、脚本、frame、iframe中。且“#”、“%”、控制字符、非US-ASCII字符、多字节字符必须被编码。
在非IE浏览器中,可以通过windows.open、a href等方式打开一个地址为data URI的新窗口。
在Firefox、Chrome等浏览器中,data URI也可以在A、IFRAME、OBJECT等地方使用,因此有必要对data URI的运行环境进行隔离。Firefox6之前的浏览器中,如果用户手动在地址栏输入data URI,那么data URI会继承当前页面的安全上下文,它不和当前页面共享信息。
4.3.2 about伪协议
about伪协议,它的用法和data伪协议较为相似,在导航至”about:SOME HTML CODE”的时候,about后的内容会原样写入浏览器中,但是随后许多浏览器中about的这个特性就被取消了。
在所有的about伪协议支持的内容中,最常见的就是about:blank,它会显示一个空白页。
至少在这些情况下,浏览器会显示空白页:
5/13 首页 上一页 3 4 5 6 7 8 下一页 尾页