novembre 16, 2008

Nuova versione di NoScript la nota estensione per Firefox

| No comment

Protezione aggiuntiva per Firefox: NoScript consente l'esecuzione di JavaScript, di Java (e, opzionalmente, degli altri plugin) solo per domini fidati di tua scelta (es. la tua banca online). Questo blocco preventivo basato su whitelist impedisce lo sfruttamento di vulnerabilità della sicurezza (sia note che addirittura ancora sconosciute!) senza perdita di funzionalità.

NoScript è un’estensione per Firefox 2 e 3 pensata per bloccare codice javascript, oggetti Flash/Silverlight/Java e ogni altro veicolo di possibili attacchi informatici da parte dei siti che visitiamo, nella maniera meno invasiva possibile.

AsteClick - TomTom One Europe

Una volta installato, il plugin si presenta come una piccola S cliccabile nell’angolo in basso a destra della finestra di Firefox, che dà un feedback immediato sul funzionamento dell’esteinsione: se infatti uno o più script/oggetti vengono bloccati, NoScript ci avvertirà disegnando sulla S un simbolo rosso di divieto e mostrando subito sopra la status bar una seconda barra con le informazioni sullo script bloccato e un tasto Options.

Indipendentemente dal sistema operativo utilizzato, le estensioni per Firefox e per tutti i browsers Mozilla-based, Iceweasel compreso, sono veramente una grande invenzione. Ce ne sono di tutti i gusti e per ogni funzionalità, ma quella che in assoluto considero la più utile è senza dubbio l'estensione NoScript, che, come si può facilmente dedurre dal nome, consente di bloccare l'esecuzione di codice JavaScript e molto altro ancora, rendendo così il nostro browser preferito ancor più sicuro e performante.

Screenshot 1Screenshot 2

V. 1.8.5 - Your Browser is YOURS

Main good news:
  • New "sticky" menu allows multiple permission changes to be operated before reloading on Gecko >= 1.9 browsers. It's triggered by the ctrl+shift+S shortcut and by left-clicks on the statusbar icon or on the toolbar button. Sticky behavior is controlled by the noscript.sticky.* about:config preferences.
  • Improved accuracy of ClearClick ClickJacking detection algorithms.
  • Improved usability on the Fennec mobile browser.
  • NoScript Options|Plugins|Opaque embedded objects preference to defeat opacity-based attacks.
  • Restored compatibility with 1.5.0.x (note: due to technical limitations of Gecko 1.8, ClearClick is not available but you still get good anti-clickjacking protection from Opaque
Creatividad clasica 8
Usable security

Operating NoScript is really simple. When you install NoScript, JavaScript, Java, Flash Silverlight and possibly other executable contents are blocked by default. You will be able to allow JavaScript/Java/... execution (scripts from now on) selectively, on the sites you trust. Notice that you shouldn't disable JavaScript and Java using Firefox settings, i.e. Tools|Options|Content|Enable JavaScript and Enable Java options have to be checked (JavaScript and Java enabled), otherwise JavaScript remains disabled everywhere even when allowed by NoScript
When you browse a site containing blocked scripts, a brief sound is optionally played and a notification, similar to those issued by popup blocker, is shown.
Look at the statusbar icon to know current NoScript permissions:

  • Forbidden Icon - this means that scripts are blocked for the current site
  • Partially Allowed Icon - this means scripts are allowed for some of the URLs sourcing scripts from the current site. It happens when there are multiple frames, or script elements linking code hosted on 3rd party hosts.
    For instance, in most cases when a site is compromised with JavaScript malware, the malicious code is hosted on external "shady" sites. Even if you've previously allowed the top-level site, these external sites are still blocked and the attack fails anyway.
  • Partially Allowed / Partially Untrusted Icon - this means scripts are allowed for some URLs, and all the other ones are marked as untrusted.
  • Allowed Icon - this means that script execution is allowed for the current site
  • Globally Allowed Icon - this means that scripts are globally allowed (why did you decide to browse without any protection??!)

NoScript: one click to enable/disable JavaScript globally or PER SITE The number of detected tags for current page is shown in a tooltip when you fly over the icon with your mouse. If the "S" inside the icon is white rather than blue (Forbidden Icon - no active script Partially Allowed Icon - no active script Partially Allowed / Partially Untrusted Icon - no active script Allowed Icon - no active script Globally Allowed Icon - no active script), 0 script tags have been detected: this likely means you don't need to enable JavaScript in that page at all.

If you left click on the icon, you can change script permissions using a simple menu.
You can reach the same menu by right clicking over the document, so you can operate also in windows which don't provide a status-bar. Of course, if you don't like contextual menus, you can hide it.
Most menu items are in the form "Allow", "Temporarily allow", "Forbid". The "Temporarily" permissions are in effect until you exit the browser.
Special commands:

  • Allow Scripts Globally (dangerous) switches NoScript in the (not recommended) "Default Allow" mode. Only sites and objects explicitly marked as untrusted will be disabled. Other security features, like Anti-XSS protection or Automatic Secure Cookie Management will still be effective, though.
  • Allow all this page and Temporarily allow all this page enable every site shown as allowable by NoScript's menu on the current page, unless already marked as untrusted.
  • Make page permissions permanent permanently enables every site shown as temporarily allowed by NoScript's menu on the current page.
  • Revoke temporary permissions cancels all the "Temporary allow" commands issued during this session.

A toolbar button is also provided: right click on your toolbar and select the Customize menu item to add it. By clicking on the NoScript toolbar button you will toggle the forbidden/allowed state of the top-most site in the current page, i.e. the one displayed in your address bar. Also, if you click the tiny arrow near the NoScript toolbar button, the usual NoScript menu will be dropped down.

If you're not a mouse lover, you will find these two keyboard shortcuts helpful:

  1. CTRL + SHIFT + \ (backslash) toggles allowance status for the current top-level site - temporarily by default, to make it permanent set the about:config noscript.toggle.tempfalse. preference to
  2. CTRL + SHIFT + S opens the NoScript status bar menu, which lets you perform every NoScript related operation using the cursor keys.

Both these shortcuts can be changed using the about:config noscript.key.* preferences.

Every NoScript menu includes a command to open the Options dialog: you use it to allow or forbid many sites at once, to customize user interface and to decide if you want to automatically reload current site when you change permissions. Other useful options are also available there.

Site matching

For each site you can decide to allow the exact address, or the exact domain, or a parent domain. If you enable a domain (e.g., you're implicitly enabling all its subdomains (e.g., and so on) with every possible protocol (e.g. http and https). If you enable an address (protocol://host, e.g., you're enabling its subdirectories (e.g. and, but not its domain ancestors nor its siblings, i.e. and will not be automatically enabled.
By default only the 2nd level (base) domain is shown (e.g. is shown in the menus, but you can configure appearance to show full domains and full addresses as well.

NoScript recognizes two kinds of "shorthand" patterns, to be manually entered in the NoScript Options|Whitelist panel:

  1. Jolly port matching - an address with a 0 (zero) port specification will match every site with the same protocol, domain and any non-standard port: if one is met during navigation, it gets temporarily enabled. For instance, matches and, but not (standard 80 port, omitted). Since protocol specification is mandatory, regular subdomain matching with rightmost components comparison couldn't work for multiple subdomain. You can specify subdomain matching patterns using an asterisk in place of the leftmost domain component: for instance, you need to match all the subdomains of for all ports with the HTTPS protocol, you can whitelist https://* This is the ONLY situation where asterisk is considered a wildcard. (different protocol) nor
  2. Subnet matching - an address with a partial numeric IPv4 IP will match all the subnet. You must specify at least the 2 leftmost bytes, e.g. 192.168 or 10.0.0. Again, matching sites will be temporarily allowed on demand.

Important notice: the asterisk character (*) have NO special meaning to NoScript, other than subdomain matching in Jolly port matching patterns (see above). Asterisk is NOT a general wildcard, so if you're typing it while manually adding a site to your whitelist, double check you know what you're doing. By the way, most of the time you prefer not to fiddle with your whitelist manually: just use the NoScript "Allow" and "Forbid" menu items, it's much simpler and error free!


Java™, Silverlight™, Flash® and other plugins

While its primary aim is preventing malicious JavaScript from running, NoScript can effectively block Java™, Silverlight™, Flash® and other plugins on untrusted sites. Java Applets, Flash movies/applications, Quicktime clips, PDF documents and other content won't be even downloaded from sites where you consider them annoyances or dangers, saving your bandwidth and increasing your navigation speed. While in early NoScript versions only JavaScript and Java were blocked by default, this restriction has been extended to Flash and the other plugins, in order to prevent Flash-based XSS and other plugin-based attacks. Anyway you can configure the kinds of content you want to forbid using the NoScript Options|Plugins) next to the count. Keep in mind that some sites use Java applets, Silverlight embedded objects or Flash movies to deliver rich content and applications, hence if you meet some web page you need to use but you find some functionality is missing, consider the possibility that you're blocking some essential applet or movie. panel. The status bar tooltip and the message bar display the total count of detected plugin objects (

On a non-whitelisted site you can still temporarily allow an individual plugin object with just one left click on its placeholder (screenshot). The movie/applet/clip will stay enabled until the end of the session or until you Revoke Temporary Permissions.
Middle clicking on a Java/Silverlight/Flash/Plugin object placeholder opens it in a window of its own.
Right clicking on a Java/Silverlight/Flash/Plugin object placeholder opens the context menu for links, allowing you to save the content with Save Link As....
Holding down the Shift key and clicking on a Java/Silverlight/Flash/Plugin object placeholder temporarily hides it.

You can also use the Blocked Objects menu to find out which plugin content instances you're blocking even if their placeholder is not easily visible, and/or enable them individually, per site or per type.

It's worth noticing that while early NoScript versions used to block plugin content objects checking exclusively their origin, i.e. the site where they were downloaded from, most recent NoScript versions check also the parent site which is embedding the content: a non-whitelisted site won't be able to run a plugin content piece, even if coming from a trusted site, unless you explictly unblock it through its placeholder or the Blocked Objects menu.
This behavior is meant to provide effective protection against Flash-based XSS. Reverting to the old behavior is possible, even if not recommended: just switch the noscript.forbidActiveContentParentTrustCheck about:config preference to false.

The same blocking treatment can be reserved to IFRAMEs as well, especially to defeat clickjacking. Please read this FAQ for more details.

Finally, toggling NoScript Options/Plugins/Apply these restrictions to trusted sites too extends the plugin content restrictions you set for untrusted sites also to whitelisted pages, turning NoScript in a general content blocker for Java, Silverlight, Flash and other plugins functionally similar to FlashBlock.

You can configure some exception to the Forbid Other Plugins option by setting the noscript.allowedMimeRegExp about:config preference to a pattern matching the content types you want to allow. For instance, setting it to "application/pdf" will let PDF document load automatically on every site. That said, are you sure you need to? Adobe Acrobat Reader plugin got its share of vulnerabilites so far, and after all, you can still allow individual PDF documents from untrusted sites just clicking on their placeholders.

Offerte Todomondo

Untrusted blacklist
Some sites, especially those serving ads, can appear in your "Allow ..." menu more often than you like, making it too much long and noisy.
If you know you don't want to allow a certain site now and in the foreseeable future, you can permanently mark it as untrusted: just click the NoScript icon, open the Untrusted menu and select the Mark as Untrusted menu item. NoScript won't even propose you to allow it again and your NoScript will be even more clean and usable.If you later change your mind, don't worry: just open the Untrusted menu again (on the same page), and you'll find the Allow command there.This feature is especially useful if you decided to use the (not recommended) NoScript Options|General|Temporarily allow top level sites by default mode, because sites marked as untrusted won't be allowed anyway.Advanced users: even though the untrusted sites blacklist has no listing UI of its own, you can mass-edit it either modifying the noscript.untrusted about:config preference or using the Import/Export functionality of the NoScript Options|Whitelist panel, knowing that the untrusted entries are exported under an [UNTRUSTED]header.

Anti-XSS protection

Cross-Site Scripting (XSS) vulnerabilities are usually programming errors made by web developers, which allow an attacker to inject his own malicious code from a certain site into a different site. They can be used, for instance, to steal your authentication credentials and, more in general, to impersonate you on the victim site (e.g. your online banking or your web mail).

This kind of vulnerability, often overlooked, is very widespread and becoming highly popular among hackers: someone even bothered to write a JavaScript-based bot, called Jikto, turning your browser into a zombie which relentlessly sends automated XSS attacks all around. Of course this tool has been built "for research purpose", but its code unfortunately appears to be leaked in the wild, so anybody can take advantage of it, now...

NoScript XSS notification and its menu NoScript features unique Anti-XSS counter-measures, even against XSS Type 1 attacks targeted to whitelisted sites.

Whenever a non-trusted site tries to inject JavaScript code inside a trusted (whitelisted and JavaScript enabled) site, NoScript filters the malicious request neutralizing its dangerous load.

Then a yellow notification bar displays a message like
"NoScript filtered a potential cross-site scripting (XSS) attempt from []. Technical details have been logged to the Console."
On the left side of this bar there's also an "Options..." button: if you click it, you can choose among the following actions:

  • Show Console, displaying the Error Console where further technical details about the actions taken by NoScript are logged.
    Please notice that the Error Console is a standard Firefox component reporting every[NoScript XSS] label.
    JavaScript-related message from any source: the explanatory messages specifically coming from NoScript and related to XSS are only the ones marked with a
  • Unsafe Reload, which will "replay" the request bypassing XSS filters. Use this command only if you're absolutely sure that NoScript detected a false positive.
  • Suppress the XSS-related notifications (you will still be able to operate through the standard NoScript menu).
  • Open the XSS Options panel.
  • Navigate to the XSS FAQ web page

The specific Anti-XSS counter-measures are controlled by the NoScript Options|Advanced|XSS
Both these options are enabled by default for your maximum protection.

By default, Anti-XSS protection filters all requests from untrusted origins to trusted destinations, considering trusted either "Allow"ed or "Temporary allow"ed sites. If you prefer "Temporarily allow"ed sites to be still considered as untrusted origins from the XSS point of view, you just need to set about:config noscript.xss.trustTemp preference to false.

Furthermore, NoScript checks also requests started from whitelisted origins for specific suspicious URL patterns landing on other trusted sites: if a potential XSS attack is detected, even if coming from a trusted source, filters are promptly triggered.

This feature can be tweaked changing the value of the noscript.injectionCheck about:config preference as follows:

  0 - never check
1 - check cross-site requests from temporary allowed sites
2 - check every cross-site request (default)
3 - check every request

NoScript's Anti-XSS filters have been deeply tested and proved their ability to defeat every known reflective XSS technique, but their power is a double-edged sword: sometime they may detect a weird looking but legitimate request as a "potential XSS attempt". This should almost never be a show stopper, since the filter most of the time doesn't prevent you from navigating the filtered page, but the aforementioned Unsafe reload command and the XSS Advanced Options have been made easily accessible so you can work-around if you hit a false positive with side effects. Just please notify me when it happens, possibly reporting the messages NoScript logged (the lines starting with "[NoScript XSS]" in the Error Console), so I can keep tweaking NoScript's "XSS sensibility" as needed.

While Cross-Site Scripting (XSS) vulnerabilities need to be fixed by the web developers, users can finally do something to protect themselves: NoScript is the only effective defense available to "web-consumers", waiting for "web-providers" to clean up their mess.

See also the NoScript XSS FAQ, or read the excellent Cross Site Scripting Attacks: Xss Exploits and Defense book.


Most NoScript options are quite simple and self explanatory.Default values are almost always OK, however you may find useful knowing about these:

  • General
    • Temporarily allow top-level sites, not recommended and disabled by default, grants permissions "on the fly" to the address of the main page (the one usually displayed in the location bar), excluding subframes, embedded objects and sites marked as untrusted.
    • Allow sites opened through bookmarks, grants permissions "on the fly" to sites you open clicking on a bookmark of yours.
    • Left clicking on NoScript toolbar button toggles permissions for current top level site, action reachable also using the CTRL+SHIFT+S keyboard shortcut.
  • Whitelist
    An interface to manually manage the list of your trusted sites, adding or removing web addresses. This panel contains also "Import" and an "Export" buttons to backup/restore your whitelist as a plain text file.
  • Plugins
    A list of content blocking and anti-clickjacking options.
  • Appearance
    Contains preferences to hide/show UI elements.
  • Notifications
    Contains preferences to enable/disable various notifications (message bars and sound alerts).
  • Advanced
    • Untrusted
      Contains additional restrictions and policies for untrusted (unknown) sites:
      • Attempt to fix JavaScript links ( enabled by default): this means that NoScript will try to turn javascript: links into normal ones on untrusted sites as you click them, improving usability of the most unfriendly pages.
      • Hide elements prevents the replacement content from being displayed on JavaScript disabled sites.
      • Forbid "Web Bugs" blocks Web Bugs (tracking images) found inside tags, used as a (less effective) fall-back to spy on user's behavior when scripts are not available.
      • Forbid META redirections inside elements, which are often used to send the unwilling user to a dumb "Please enable JavaScript" page. Notice that this option may interfere with the RefreshBlocker extension.
      • Forbid bookmarklets, disabled by default, prevents JavaScript bookmarks (also known as bookmarklets) from working on untrusted sites.
      • Forbid (enabled by default), controls the controversial "ping" feature on untrusted sites.
    • Trusted
      Contains additional permissions and bonuses for trusted sites:
      • Show the element which follows a blocked forces the nearest replacement content to be shown for blocked 3rd party script tags even if the main page has JavaScript enabled.
      • Allow (disabled by default), controls the controversial "ping" feature.
      • Allow rich text copy and paste from external clipboard is an additional permission you can grant to trusted sites, e.g. on Web Mail or CMS user interfaces where you may want to copy inside an editor box styled text content from outside the browser.
      • Allow local links (disabled by default) allows linking local resources from web pages, as required by some gaming on line sites.
    • XSS
      Preferences for the Anti-XSS protection system:
      • Sanitize cross-site suspicious requests* - potentially dangerous characters, why may be used to inject malicious JavaScript code, are stripped out from both the URL and the REFERER header.
      • Turn cross-site POST requests into data-less GET requests - the request is sent but no malicious data is uploaded.
      • Anti-XSS Protection Exceptions, a list of regular expressions (one on each line) used to identify web addresses which you deem do not need to be protected against XSS.
      * "Cross-site suspicious requests" are requests from untrusted origins to trusted destinations, considering trusted either "Allow"ed or "Temporary allow"ed sites, unless the cross-site request is found to contain HTML or JavaScript injections. If you prefer "Temporarily allow"ed sites to be still considered as untrusted origins from the XSS point of view, even for requests which does not seem to contain injections, you just need to set about:config noscript.xss.trustTemp preference to false.
    • JAR
      Preferences for JAR document blocking:
      • Block JAR remote resources being loaded as documents - jar: URLs which are loading from remote in a context which will lead to document building are blocked. This prevents XSS attacks like the one described in this article.
      • JAR document blocking Exceptions, a list of regular expressions (one on each line) matching JAR urls which you want to bypass blocking.
    • HTTPS
      Preferences for enhancing HTTPS behavior and cookies:
      • Forbid active web content unless it comes from a secure (HTTPS) connection:
        1. Never - every site matching your whitelist gets allowed to run active content.
        2. When using a proxy (recommended with Tor) - only whitelisted sites which are being served through HTTPS are allowed when coming through a proxy. This way, even if an evil node in your proxy chain manages to spoof a site in your whitelist, it won't be allowed to run active content anyway.
        3. Always - no page loaded by a plain HTTP or FTP connection is allowed.
      • Force the following sites to use secure (HTTPS) connections - a space-separated list of site patterns
      • Never force secure (HTTPS) connections for the following sites - a space-separated list of site patterns (taking precedence over the above)
      • Enable Secure Cookie Management - countermeasures against HTTPS cookie hijacking, see this FAQ for more details.

Some about:config preference you may want to know are:

  • noscript.jsredirectIgnore - defaults to false, if true disables searching and displaying JavaScript links in non-whitelisted pages which do not contain any regular link, like
  • noscript.jsredirectFollow - when true (default) and only one single JavaScript link is found in a top-level page, that link is automatically followed becaus we assume it's a JavaScript redirection (e.g.
  • noscript.autoReload.allTabs - switch it to false if you want only the current page to be reloaded when permissions change (it will prevent a slowdown when you've got many tabs open on the same site).
  • - decides if allowing scripts globally causes an autoreload or not.

NoScript is currently translated in the following languages:

  1. Arabic (thanks Nassim Dhaher)
  2. Belarusian (thanks Drive DRKA)
  3. Bulgarian (thanks Georgi Marchev)
  4. Catalan (thanks Joan-Josep Bargues)
  5. Chinese Simplified (thanks blackdire)
  6. Chinese Traditional (thanks Chiu Po Jung and FreeXD)
  7. Croatian translation (thanks Stiepan A. Kovac)
  8. Czech (thanks drAcOniS and Petr Jirsa)
  9. Danish (thanks Jørgen Rasmussen, roellum and Carsten Winkler)
  10. Dutch (thanks Liesbeth)
  11. English GB (thanks Ian Moody)
  12. English (thanks William Shakespeare)
  13. Finnish (thanks Mika Pirinen)
  14. French (thanks Xavier Robin)
  15. Galician (thanks roebek)
  16. German (thanks Thomas Weber & Volker Hable)
  17. Greek (thanks Sonickydon)
  18. Hebrew (thanks Asaf Bartov)
  19. Hungarian (thanks Mikes Kaszmán István and LocaLiceR)
  20. Indonesian(thanks regfreak)
  21. Italian (thanks Dante Alighieri)
  22. Japanese (thanks Beerboy)
  23. Lituanian (thanks Mindaugas Jakutis)
  24. Macedonian (thanks to Ivan Jonoski)
  25. Malay translation (thanks Joshua Issac)
  26. Norwegian bokmål (thanks Håvard Mork)
  27. Persian (thanks Pedram Veisi)
  28. Polish (thanks Lukasz Biegaj)
  29. Portuguese (thanks Dario Ornelas)
  30. Portuguese/Brazil (thanks Raryel Costa Souza)
  31. Romanian (thanks Ultravioletu)
  32. Russian (thanks Alexander Sokolov)
  33. Simplified Chinese (thanks George C. Tsoi)
  34. Slovak (thanks SlovakSoft)
  35. Slovenian(thanks Tomaž Mačus)
  36. Swedish (thanks jameka)
  37. Spanish (thanks Alberto Martínez, EduLeo and Urko)
  38. Thai (thanks Qen)
  39. Traditional Chinese (thanks Chiu Po-Jung)
  40. Turkish (thanks Engin Yazılan and eveterinary)
  41. Ukrainian (thanks MozUA)
  42. Vietnamese (thanks tonynguyen)
You should enable JavaScript only where you're sure it is safe. Now you can do it with ONE
CLICK! NoScript: one click to enable/disable JavaScript globally or PER SITE

NoScript notifies you about blocked script tags () and Java™+Flash®+Plugin content (J+F+P) using a discreet :-) zap sound and standard "Popup blocker" style messages (you can customize/disable both using the Appearance options).

NoScript notifications

NoScript provides a really easy whitelist dialog to set JavaScript permissions.

NoScript JavaScript permissions dialog

You can customize almost everything in the appearance of NoScript

NoScript JavaScript appearance options

Advanced options allows you to block Java™, Flash® and other plugins (J+F+P) on untrusted sites (only JavaScript and Java are blocked by default). You may want also to enable rich-text clipboard operation on trusted sites (e.g. your web mail "compose" page).

NoScript JavaScript appearance options

Ultimi post pubblicati


Dark Orbit    300x250


Ponti e    Festività 300x250

Universo Linux


Nessun commento:

Caricamento in corso...

Ultimi post pubblicati


Post Più Popolari