NoScript 是一个免费和开源的扩展,专门为Mozilla Firefox 和 Mozilla Application Suite网页浏览器而开发。NoScript 以白名单选择性执行 JavaScript、Java、Flash、Sliverlight 以及其它插件和脚本内容。在安装之后, JavaScript, Java, Flash, Sliverlight和其它可执行内容都会被Firefox默认阻止。用户可以手动允许这些内容。

NoScript会在Firefox中占据一个工具栏图标或是一个状态栏图标,并显示正在浏览的页面上每个站点的内容被阻止或允许的情况,同时也可以修改之前阻止或允许的内容。对于每个页面,可以选择允许特定的地址,特定的域名或是根域名并执行它的内容。同时,允许一个域名之后(例如, mozilla.org),它的所有二级域名都会被默认允许(例如 www.mozilla.org, addons.mozilla.org 等等)而且与协议无关(例如http和https)。页面也可以在NoScript中被列入黑名单。把一个页面列入黑名单不仅会阻止执行脚本内容,同时还会去掉手动执行这些内容的选项。

2007年4月11日,NoScript 1.1.4.7版公开发布,新增了一个客户端的保护,针对类型0和类型1的XSS攻击。一旦一个页面试图将HTML或是JavaScript代码插入另一个页面,NoScript就会过滤掉有害请求。2008年9月15日,NoScript 1.8.1版公开发布,使得用户可以强制某些网站必须通过https访问,增加安全性。此外NoScript也可以强制https网站把cookies加密来阻止cookies劫持。2009年9月23日,NoScript 1.9.8.9版增加了对HSTS的支持。

这一功能使得用户在访问支持的网站(例如,PayPal)的时候自动只通过HTTPS访问,以防止中间人攻击。截至2009年5月 (2009-05,, NoScript的白名单默认包含了扩展作者的部分域名,一些Google的域名(包括一个必要的用于显示Google Adsense广告的域名),雅虎以及微软,由于这些使用了AJAX的Web邮件服务可能是某些用户唯一熟悉的使用邮件方式,如果不这样做,这些用户就会在安装NoScript之后无意地把他们自己锁住。这个白名单是可以修改的。

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

相关导航