请输入您要查询的百科知识:

 

词条 noscript
释义

定义

noscript 元素用来定义在脚本未被执行时的替代内容(文本)。

此标签可被用于可识别 <script> 标签但无法支持其中的脚本的浏览器。

此段代码意思为如果浏览器不支持script的代码,则会显示嵌入的那个页面的内容

定义和用法

noscript 元素用来定义在脚本未被执行时的替代内容(文本)。

此标签可被用于可识别 <script> 标签但无法支持其中的脚本的浏览器。

HTML与 XHTML之间的差异

NONE

提示和注释

注释:如果浏览器支持脚本,那么它不会显示出 noscript 元素中的文本。

注释:无法识别 <script> 标签的浏览器会把标签的内容显示到页面上。为了避免浏览器这样做,您应当在注释标签中隐藏脚本。老式的(无法识别 <script> 标签的)浏览器会忽略注释,这样就不会把标签的内容写到页面上,而新式的浏览器则懂得执行这些脚本,即使它们被包围在注释标签中!

例子

JavaScript

<body>

...

...

<script type="text/javascript">

<!--

document.write("Hello World!")

//-->

</script>

<noscript>Your browser does not support JavaScript!</noscript>

...

...

</body>

VBScript

<body>

...

...

<script type="text/vbscript">

<!--

document.write("Hello World!")

'-->

</script>

<noscript>Your browser does not support VBScript!</noscript>

...

...

</body>

标准属性

id, class, title, style, dir, lang, xml:lang

NoScript是一个免费和开源的,为Mozilla Firefox和Mozilla Application Suite网页浏览器(诸如Flock、SeaMonkey等)所开发的扩展(Add-ons)。NoScript允许JavaScript, Java, Flash, Sliverlight以及其它插件和脚本内容基于白名单被选择性的执行。

特点

安全和使用方法

在安装之后, JavaScript, Java, Flash, Sliverlight和其它可执行内容都会被Firefox默认阻止。用户可以随后允许这些内容。NoScript会在Firefox中占据一个工具栏图标或是一个状态栏图标,并显示正在浏览的页面上每个站点的内容被阻止或允许的情况,同时也提供允许之前被阻止的内容或阻止之前被允许的内容的选项。

站点匹配和白名单

对于每个页面,特定的地址,特定的域名或是根域名都是可以被允许的,允许后它的内容就会被执行。同时,允许一个域名之后,它的所有子域名都会被默认允许而且与协议无关(例如http和https)。而允许一个地址之后,它的所有子目录都会被允许 ,此时它的根域名和以及其它二级域名都不会被允许。

黑名单

页面也可以在NoScript中被列入黑名单。把一个页面列入黑名单不仅会阻止执行脚本内容,同时还会去除允许执行这些内容的选项。

反XSS防护

2007年4月11日,NoScript 1.1.4.7版公开发布,新增了一个客户端级的保护,针对类型0和类型1的XSS攻击。一旦一个页面试图将HTML或是JavaScript代码插入另一个页面,NoScript就会过滤掉有害请求,抵消这些危害。

强制HTTPS转换

2008年9月15日,NoScript 1.8.1版公开发布,使得用户可以强制某些网站必须通过https访问,增加安全性。此外NoScript也可以强制https网站把Cookies加密来阻止Cookies劫持。

2009年9月23日,NoScript 1.9.8.9版增加了对STS的支持。这一功能使得用户在访问支持的网站(例如,PayPal)的时候自动只通过HTTPS访问,使得中间人攻击变得非常困难。

奖项

NoScript被PC World杂志评为2006年百大最佳产品之一。

评论

默认阻止一切

NoScript的默认行为是阻止所有不在白名单中的脚本。这可能使大量依赖于JavaScript技术,例如AJAX的页面无法正常工作。不熟悉的用户也许会觉得相比起增加的安全保护,这样的行为威力太大,没必要甚至令人厌烦。但同时NoScript也支持一个可选的黑名单模式:用户可以选择全局启用JavaScript然后禁止他们不信任的站点。即便如此配置,NoScript仍然能在很大程度上增强安全性,由于XSS, CSRF和Clickjacking的防护仍然可以起作用。

内置的白名单

截至2009年5月, NoScript的白名单默认包含了扩展作者的部分域名,一些Google的域名(包括一个必要的用于显示Google Adsense广告的域名),雅虎以及微软,由于这些使用了AJAX的Web邮件服务可能是某些用户唯一熟悉的使用邮件方式,如果不这样做,这些用户就会在安装NoScript之后无意地把他们自己锁住。这个白名单可以在设置对话框中修改,如同扩展官网的解释。

和Adblock Plus的争端

2009年5月1日,Wladimir Palant, 另一个知名Firefox扩展Adblock Plus的作者,宣布一周之前NoScript 1.9.2版开始妨碍Adblock Plus的正常工作。NoScript会在未经Adblock Plus和用户允许的情况下解析并显示赞助商页面。Palant说NoScript使用了代码混淆来逃避十六进制代码层面对这个修改的检测。几乎同时,由于此次事件Mozilla决定修改社区准则。4月30日,NoScript升级到1.9.2.3,把传说中的代码混淆改为了一个用户可见的特性,即NoScript在Adblock Plus的过滤规则中将自己的网站设置为了白名单。Wladimir Palant指出这个过滤规则集即便被用户删除也会在每次启动的时候自动添加回去,不过这看起来似乎只是个无意的Bug,因为白名单同时也可以被永久禁止或是如NoScript FAQ所说,被用户自己的过滤规则覆盖。几小时之后,2009年5月2日,自动更新的NoScript 1.9.2.6版彻底移除了针对Adblock Plus设置的白名单,并在发行记录中对没有在用户事先允许的情况下修改Adblock Plus功能的行为作出公开道歉。2009年5月4日,在博客上一篇长文中,NoScript的作者Giorgio Maone以个人身份对最初含糊的接触表达了歉意,认识到这是破坏了信任的关系并表示了他的悔过之心。他同时解释NoScript添加的Adblock Plus白名单意图是对EasyList反常性攻击做出的对抗,这些攻击是针对Manoe的网站,并几乎破坏了页面所有的动态功能,甚至是安装NoScript软件包的链接。

NoScript网站和Ghostery扩展的冲突

2009年5月1日以及2009年5月3日在讨论NoScript对Adblock Plus的修改时,有人在NoScript支持论坛中指出NoScript官网上有一个CSS规则不停让Ghostery这个Mozilla扩展弹出提示,表示网页上有奇怪而隐蔽的"bug"。Ghostery也会提示用户Manoe网站上Google Adsense的使用。Manoe在回应中宣称他的CSS只是设计网页本身,Ghostery的提示是由于其自身的技术问题,同时这些提示看起来很糟糕而且妨碍了网页内容的真实效果。在之后的声明中Manoe又特别批评这些提示挡住了了捐款按钮和使用许可的显示并且表示他的CSS没有阻止Ghostery的正常工作。

大多数人则认为Manoe的CSS文件足够让Ghostery正确判断出包含的统计代码。有人指出Ghostery在其原始状态的提示并没有挡住Manoe的捐款按钮,并在几秒钟之后就消失了。另外,用户们指出Manoe的一行样式使得Ghostery无法提供一个网页bug的信息,并认为总体上来说这是Manoe自己内容的问题。但Manoe仍坚称Ghostery显示信息的方式不合适和过度敏感而导致两个扩展难以共存。

这件事的讨论扩展到了第三方站点,有些人谎称是干扰了Ghostery工作的是NoScript扩展而不是Manoe的站点。在对此事火上浇油的网站中Ghostery的作者David Cancel随后修正了自己博客上原先的冒昧言论。

2009年5月6日,在此事的激烈讨论平息之后,Maone公开表示他改变了自己对此事的观点,为此他修改了自己站点的CSS。Ghostery的提示框不再被隐藏而是向页面中部轻微移动了一些,以免挡住捐款按钮或是许可信息。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/11 4:45:07