Navigazione in incognito ≠ navigazione sicura

Una delle tante innovazioni dei browser moderni è la cosiddetta navigazione anonima. Ad esempio premendo i tasti CTRL+SHIFT+N in Chrome si avvia una nuova sessione di Navigazione in Incognito, ma simili modalità di navigazione sono presenti anche in Firefox, Edge, Opera, Safari ecc…

Questo post è dedicato ai molti di navigatori del web italiani che sono convinti che navigando su internet in questa modalità nessuno sia in grado di ficcare il naso sui siti che si visitano, tenendoli al sicuro da occhi indiscreti.

Ma cosa significa veramente navigare in incognito?

Quando dal proprio PC (o quello dell’ufficio) si avvia questa modalità di navigazione, le informazioni solitamente raccolte (in LOCALE) dal proprio browser vengono cancellate una volta terminata la sessione.

Bene direte voi… e quì casca l’asino rispondo io! 

Se rileggiamo con un attimo di calma quanto scritto un paio di righe qui sopra dovrebbe balzare all’occhio la parola LOCALE… Ciò significa che i dati relativi alla navigazione effettuata durante la navigazione in incognito (cronologia dei siti visitati, cookie, password e moduli) non vengono salvati sul PC, ma ciò non significa che il responsabile dei server aziendali, gli eventuali sistemi firewall, il provider della linea internet, il manteiner del sito web visitato, i server DNS e i vari sistemi di raccolta dati in cui ci si è imbattuti più o meno consapevolmente durante la navigazione (google analitycs, google adsense, facebook connect, ecc…), non sappiano le caratteristiche del computer e del browser che si è utilizzato, l’indirizzo IP fisso o dinamico e relativa geolocalizzazione della postazione, la lista dei siti visitati, il tipo di traffico generato (http, ftp, torrent) e tutto ciò che si è digitato (password, email, chat, ecc…).

Ciò significa che a rimanere all’oscuro dei dati di navigazione è solo il PC utilizzato, ma proprio poiché gli attori in rete sono molti e il web funziona attraverso lo scambio di dati, tutti gli altri ne avranno piena coscienza, eccome!

Quindi per ricapitolare: navigazione in incognito NON significa navigazione sicura! Per fare questo occorre utilizzare strumenti per criptare il proprio traffico dati: VPN, Tor, ecc…


WP STATS, come ho creato la mia prima Chrome Extension (parte 3 – Il file background.js)

Come ho avuto modo di parlare nei precedenti post a riguardo, ho creato un’estensione di Chrome che mi era necessaria e che non riuscivo a trovare sul Chrome Web Store.


Istantanea_2016-02-01_19-43-50WP STATS una volta installato nel nostro browser Chrome e settati i parametri necessari per il suo funzionamento, è in grado di provvedere in maniera automatica a contattare il servizio di WordPress.com di rilascio delle statistiche di accesso al blog di cui si possiedono le opportune credenziali di accesso e a visualizzarne il numero di hits giornaliere all’interno della sua icona.

Istantanea_2016-02-01_19-38-58In pratica per ‘startare’ occorre solo compilare i seguenti parametri nella sezione Opzioni di WP STATS:

  • Url del blog da monitorare;
  • l’API KEY di Akismet assegnata al sito.

In questo post ci concentreremo sul file background.js, basilare per il funzionamento di una qualsiasi estensione.

In pratica si tratta del motore principale della nostra estensione: in esso sono contenute le istruzioni principali (lo script in Javascript). Comunemente l’architettura delle estensioni prevede un file background.html che si attiva con l’estensione insieme al codice contenuto nel file background.js, questo quando non si prevede di aver bisogno di “scatenare” il codice ad un particolare evento (come potrebbe essere l’apertura di una particolare pagina), come accade per la nostra estensione, visto che WP STATS mostra un contatore e compie in loop questa operazione fino a quando Chrome è aperto,

In questo articolo spiegherò in dettaglio il funzionamento del background.js che ho creato per l’estensione WP STATS (clicca sul seguente link per visualizzare il sorgente):

//inizializzazione variabili
var url;
var text = 'Wait!';
var start = false;
var time = 60000;
var www1 = 'https://stats.wordpress.com/csv.php?api_key=';
var www3 = '&blog_uri='
var www5 = '&table=views&days=1&format=xml';


//evento all'installazione dell'applicazione (richiamo option.html)
chrome.runtime.onInstalled.addListener(function() {
  chrome.tabs.create({url: "option.html"});
});

//inizializzazione etichetta estensione
chrome.browserAction.setBadgeText({text});
chrome.browserAction.setBadgeBackgroundColor({ color: "#FF0000"});

//richiamo funzione all'avvio dell'estensione
on_start();


//Loop controllo e aggiornamento contatore
var readyStateCheckInterval = setInterval(function() {
	restore_options();
	sendRequest(url, function (response) {	
	text = response;
	if (text != null)
		{
		start = true;
    		chrome.browserAction.setBadgeText({text});
        	chrome.browserAction.setBadgeBackgroundColor({ color: "#FF0000"});
		};
	}
)}, time); 


//XMLHttpRequest
function sendRequest(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
		var xmlDoc = xhr.responseXML;
		var x = xmlDoc.getElementsByTagName("total")[0].childNodes[0].nodeValue;
            	callback(x);
        }
    };
    xhr.open("GET", url, true);
    xhr.send();
}


//aggiornamento contatore
function restore_options() {
    chrome.storage.sync.get({
    favoriteWww: '',
    favoriteKey: ''
  }, function(items) {
    	www4 = items.favoriteWww;
    	www2 = items.favoriteKey;
	url = www1 + www2 + www3 + www4 + www5;
	if (start == true) {	
			chrome.browserAction.setBadgeBackgroundColor({ color: "#00FF00"});
			   };
  });

	sendRequest(url, function (response) {  	
	text = response;
	if (text != null)
		{
		start = true;
    		chrome.browserAction.setBadgeText({text});
        	chrome.browserAction.setBadgeBackgroundColor({ color: "#FF0000"});
		};
});	
}


//funzione all'avvio dell'estensione
function on_start() {
    
    text = 'wait';
    chrome.browserAction.setBadgeText({text});
    
    chrome.storage.sync.get({
    favoriteWww: '',
    favoriteKey: ''
    }, function(items) {
    	www4 = items.favoriteWww;
    	www2 = items.favoriteKey;
	url = www1 + www2 + www3 + www4 + www5;
	chrome.browserAction.setBadgeBackgroundColor({ color: "#00FF00"});
	
        sendRequest(url, function (response) {  	
	text = response;
    	chrome.browserAction.setBadgeText({text});
	chrome.browserAction.setBadgeBackgroundColor({ color: "#FF0000"});
    });
}
)};

All’interno delle parentesi graffe { } che aprono e chiudono il file, scopriamo in dettaglio le varie sezioni che lo compongono e il loro significato. Continua a leggere

WP STATS, come ho creato la mia prima Chrome Extension (parte 2 – Il file manifest.json)

Come ho avuto modo di parlare nei precedenti post a riguardo, ho creato un’estensione di Chrome che mi era necessaria e che non riuscivo a trovare sul Chrome Web Store.


Istantanea_2016-02-01_19-43-50WP STATS una volta installato nel nostro browser Chrome e settati i parametri necessari per il suo funzionamento, è in grado di provvedere in maniera automatica a contattare il servizio di WordPress.com di rilascio delle statistiche di accesso al blog di cui si possiedono le opportune credenziali di accesso e a visualizzarne il numero di hits giornaliere all’interno della sua icona.

Istantanea_2016-02-01_19-38-58In pratica per ‘startare’ occorre solo compilare i seguenti parametri nella sezione Opzioni di WP STATS:

  • Url del blog da monitorare;
  • l’API KEY di Akismet assegnata al sito.

In questo post ci concentreremo sul file manifest.json, basilare per il funzionamento di una qualsiasi estensione.

Non si tratta che di un file in formato JSON che contiene l’elenco delle proprietà dell’estensione quali il nome, la descrizione, la versione ecc…, ma anche per dichiarare a Chrome ciò che l’estensione fa, di quali permessi occorrono per il funzionamento e l’elenco degli asset. Per un approfondimento è possibile fare affidamento sulla documentazione ufficiale fornita direttamente da Google, in questo articolo spiegherò in dettaglio il funzionamento del manifest.json che ho creato per l’estensione WP STATS (clicca sul seguente link per visualizzare il sorgente):

{ 
  "name": "WP Stats",
  "author": "Zirconet",
  "description": "Show WordPress hits",
  "version": "1.1.0",
  "manifest_version": 2,

  "options_ui": {
	"page": "options.html",
	"chrome_style": true,
	"open_in_tab": false
  },

  "background": {
	"scripts": ["js/background.js"],
	"persistent": true
  },
  
  "browser_action": {
	"default_icon": "img/wp-logo.png"
  },

  "permissions": [
	"tabs",
        "storage",
	"https://stats.wordpress.com/*/",
        "notifications"
  ],

   "icons": {
	"48": "img/icon48.png",
	"128": "img/icon128.png"
  }

}

All’interno delle parentesi graffe { } che aprono e chiudono il file, scopriamo in dettaglio le varie sezioni che lo compongono e il loro significato. Continua a leggere

WP STATS, come ho creato la mia prima Chrome Extension (parte 1 – Presentazione)

Le Extension (estensioni) sono uno strumento imprescindibile per un browser moderno. In Google Chrome sono dei piccoli programmi scritti in Javascript, HTML e CSS che girano espandendone le funzionalità. Annunciate nel 2009 e ufficialmente introdotte a partire dal febbraio del 2010 sono scaricabili gratuitamente dal Chrome Web Store.Istantanea_2016-02-01_17-28-02

Personalmente ne ho fatto sempre uso, trovandole di una comodità assoluta.
Oggi come oggi dobbiamo tenere sotto controllo molte cose che ci riguardano sul web e le estensioni di Chrome risolvono efficacemente molti problemi: notifiche varie, blocco banner pubblicità indesiderate, navigazione anonima, ottimizzazione di Youtube ecc… Quindi confesso di averne installate a decine sul mio browser cercando di trovare un giusto compromesso tra l’effettiva efficacia e la dispersione inutile di risorse.

Senzanome

Ecco un elenco dell’estensioni che utilizzo in questo momento, nell’ordine:

  • WP STATS (link) : (per controllare in real time le visite giornaliere su questo blog);
  • WHOS.AMOUNG.US USER ONLINE COUNTER (link) : (per vedere in tempo reale quanti sono collegati a questo blog);
  • CHECKER PLUS FOR GMAIL (link) : (per avere le notifiche delle email);
  • TWITCH NOW (link) : (che mi da notifica di quando i miei streamer preferiti sono online su Twitch);
  • HITBOX PLUS (link) : (che mi da notifica di quando i miei streamer preferiti sono online su Hitbox);
  • CHECKER PLUS FOR GOOGLE CALENDAR (link) : (per avere le notifiche del mio calendario su Google);
  • VISUALPING (link) : (che mi notifica quando alcuni parti di siti che mi interessano vengono modificate);
  • UBLOCK ORIGIN (link) : (che mi evita molta della pubblicità che gira in rete);
  • STYLISH (link) : (con il quale ho modificato la visualizzazione della mia homepage di Twitter per renderla più comoda alle mie esigenze);
  • RISPARMIO DATI (link) : (che utilizza una tecnologia di Google per l’ottimizzazione del traffico dati durante la navigazione);
  • FONTFACE NINJA (link) : (che mi consente di analizzare i tipi di font utilizzati nei siti che visito);
  • YOUR QUALITY FOR YOUTUBE (link) : (che si occupa di farmi vedere i video sul Tubo in qualità HD se disponibile);
  • SELECT & TRANSLATE (link) : (che mi fornisce un menù contestuale con la quale selezionare e tradurre frasi durante la navigazione);

… e ancora diverse altre…

Per controllare e gestire quelle che avete installato sul vostro browser è sufficiente andare nel menù di Chrome SNP_9721C573E41777FBA43E1498AD084E3B160C_2696434_en_v2in Altri strumenti e quindi selezionare Estensioni.

Tutto questo per dirvi che sono sempre stato affascinato dalla funzionalità delle Estensioni e che oramai di molte di queste non potrei più farne a meno. Come purtroppo è successo con quella che si  occupava fino a qualche settimana fa di fornirmi in tempo reale le statistiche dei visitatori sul CITTADINO IMPERFETTO. Non so come mai, ma ha smesso di funzionare ed addirittura è stata cancellata dallo suo sviluppatore dal WEB STORE (boh, mistero). Sfortunatamente non sono riuscito a trovarne un’altra che fornisse le medesime funzionalità, quindi senza farmi prendere dallo sconforto ho pensato di ‘scrivermela da solo‘.icon128

Il punto di partenza è stato il sito che Google mette a disposizione dei programmatori interessati a sviluppare Estensioni di Chrome: developer.chrome.com. In lingua inglese qui trovate tutte le istruzioni occorrenti a programmare un estensione.

Dopo una prima infarinatura su concetti chiave come il funzionamento del file manifest.json, del file background.js e delle chiamate alle API come XMLHttpRequest, mi sono messo di buzzo buono e in una nottata di lavoro sono riuscito a sfornare la prima versione di WP STATS.


Istantanea_2016-02-01_19-43-50WP STATS una volta installato nel nostro browser Chrome e settati i parametri necessari per il suo funzionamento, è in grado di provvedere in maniera automatica a contattare il servizio di WordPress.com di rilascio delle statistiche di accesso al blog di cui si possiedono le opportune credenziali di accesso e a visualizzarne il numero di hits giornaliere all’interno della sua icona.

Istantanea_2016-02-01_19-38-58In pratica per ‘startare’ occorre solo compilare i seguenti parametri nella sezione Opzioni di WP STATS:

  • Url del blog da monitorare;
  • l’API KEY di Akismet assegnata al sito.

Necessaria al funzionamento dell’estensione e suo principio cardine è la ‘vecchia’ WordPress.com Stats API che viene invocata all’indirizzo https://stats.wordpress.com/csv.php? completandolo dell’identificativo del blog e relativa chiave Akismet e fornisce una pletora di dati anche in formato XML:

Istantanea_2016-02-01_20-17-15

Se non sapete la vostra chiave gratuita di Akismet che vi è stata assegnata al momento della creazione del vostro account in WordPress.com è possibile reperirla facilmente a questo indirizzo http://apikey.wordpress.com avendo l’accortezza di esservi prima ‘loggati‘ al vostro blog come amministratori.Senzanome


Per chi volesse provarla, WP STATS è disponibile gratuitamente sul Chrome Web Store ufficiale a questo indirizzo: https://goo.gl/Q6O6lFIstantanea_2016-03-02_19-50-42


Nei successivi post vedremo insieme in dettaglio tutti i passaggi fatti per compilare l’estensione WP STATS:

Risorse:

  • WP STATS sul Chrome Web Store ufficiale : (link);
  • Repositori sorgenti WP STATS su GITHUB: (link).

Google Chrome blocca di default le pubblicità realizzate con Flash

Ennesimo duro colpo ad Adobe Flash da parte di uno dei browser più utilizzati al mondo.

A partire dal primo settembre Google Chrome bloccherà di default i banner pubblicitari realizzati con questa tecnologia: starà poi all’utente, se interessato (ma quando mai…) eventualmente a cliccarci sopra per far partire la pubblicità.20100331131555_adobe_flash_google_yahoo

Una scelta che va in favore non solo della sicurezza, ma anche alle prestazioni, poiché spesso e volentieri le pubblicità in Flash sono veicolo non solo per il malware, ma rappresentano anche un ulteriore carico per la CPU.

Dopo il blocco di default dei contenuti flash nei plug-in, i ragazzi di Mountain View mettono ora sul campo un sofisticato algoritmo in grado di discernere tra contenuto importante e mera pubblicità, bloccando di default quest’ultimi contenuti. Ovviamente nel caso venga bloccato un contenuto che l’utente desidera vedere, è sempre possibile scegliere di riprodurlo.

Se i produttori di software non sono in grado di garantire la sicurezza e le prestazioni è giusto che vengano soppiantati da tecnologie più al passo dei tempi come ad esempio l’HTML5A fare le spese potrebbe essere il mercato pubblicitario, che fa ancora grande affidamento su Flash per creare pubblicità multimediali dinamiche, interattive e ricche di contenuti. Il blocco per default tramite il browser presuppone naturalmente una perdita dei profitti: ma sarebbe pure ora che i creatori di contenuti passino a tecnologie più sicure per i navigatori del web.

Proteggersi dalle vulnerabilità usate da Hacking Team

Il caso Hacking Team ha destato in questi giorni un enorme scalpore.

In particolare il contenuto del pingue archivio da 400 GB trafugato nei giorni scorsi ha portato alla scoperta di alcune falle sconosciute scoperte in Flash Player, in Windows ed in altri software che l’azienda milanese utilizzava per eseguire il codice per il monitoraggio dei sistemi in modalità remota, all’insaputa del proprietario.1436558551201192

Ora visto che queste informazioni sono di libero accesso a tutti in rete, sono molte le software-house impegnate a correre ai ripari e correggere le molte vulnerabilità che potrebbero essere utilizzate dai criminali informatici.

E’ ad esempio noto che nelle scorse ore un gruppo di hacker cinesi avrebbe già “riciclato” il materiale derivato dall’attacco a Hacking Team per aggredire almeno 23 società attive nel settore delle tecnologie aerospaziali e della difesa, delle costruzioni, dell’energia, dell’hi-tech, dei trasporti, delle telecomunicazioni, della salute e delle biotecnologie.

Nel nostro piccolo possiamo mettere in atto alcuni accorgimenti per evitare che i nostri sistemi vengano attaccati: Continua a leggere

Google Chrome non ama la batteria dei portatili Windows

A causa di una gestione un po’ farlocca del “system clock tick rate” il browser della casa di Mountain View ha un problema che può impattare drasticamente sulla durata della batteria e in alcune condizioni rallentare le prestazioni del computerchrome

Alla base di tutto, la modifica dell’intervallo con cui la CPU si “risveglia” quando nel sistema non ci sono eventi che richiedono calcoli: in Windows, questo intervallo è settato di default a 15,625 millisecondi, ma con Google Chrome attivato scende a 1,000 millisecondo. La stessa Microsoft afferma che in queste condizioni i consumi di energia possono aumentare anche del 25%.

L’esistenza del problema è verificabile facilmente tramite l’applicazione Clockers che viene messa a disposizione gratuitamente nel portale Technet di Microsoft, ecco i risultati della nostra prova:

clockers

La notizia è stata riportata da diversi siti sulla scia di un articolo comparso su Forbes, ma in realtà il bug è noto sin dal 29 settembre 2012 (bug 153139)  anche se il problema  non è mai affrontato a dovere da parte di Google. Speriamo che il vespaio alzato sia di stimolo per il team di programmatori.

Sottolineiamo che il problema riguarda il solo sistema operativo Windows: gli utenti Mac o Linux possono stare tranquilli.

Al momento comunque il problema non è aggirabile in alcun modo se non utilizzando un browser come Internet Explorer o Firefox (almeno quando non siete collegati alla rete elettrica): in questi browser il parametro rimane a 15.625 ms fino a quando il browser non ha bisogno di fare qualcosa per cui deve incrementare il tick rate. Se andate su YouTube, ad esempio, e riproducete un video, IE porta il valore a 1.000 ms. Quando si chiude la scheda e si prosegue con la navigazione normale, il tick rate torna a 15.625 ms.

E’ disponibile GOOGLE CHROME ver. 29.0.1530.2

google-chromeNuovo aggiornamento del browser di casa GOOGLE con il quale sono stati corretti alcuni errori e apportati alcuni miglioramenti

Per maggiorni informazioni: release-notes.

Il CITTADINO IMPERFETTO ringrazia sentitamente il team di CHROME. Potete trovare maggiori informazioni direttamente a questo indirizzo: http://dev.chromium.org/getting-involved/dev-channel.

E’ disponibile GOOGLE CHROME ver. 29.0.1516.3

google-chromeNuovo aggiornamento del browser di casa GOOGLE che viene promosso alla versione 29, con la quale sono stati corretti alcuni errori e apportati diversi miglioramenti.

Per maggiorni informazioni: release-notes.

Il CITTADINO IMPERFETTO ringrazia sentitamente il team di CHROME. Potete trovare maggiori informazioni direttamente a questo indirizzo: http://dev.chromium.org/getting-involved/dev-channel.

E’ disponibile GOOGLE CHROME ver. 28.0.1464.0

google-chromeNuovo aggiornamento di Chrome, il browser di casa GOOGLE. 

Oltre ad aver corretto alcuni errori sono stati apportati alcuni miglioramenti, ma sopratutto fa il suo esordio Blink, il nuovo motore di rendering, fork di WebKit che oltre ad essere stato utilizzato nel progetto Chromium è il motore di altri browser tra cui anche quello di Safari (Apple).

I ragazzi di Mountain View hanno dichiarato di essere pronti a lavorare su un progetto nuovo che li vede lontani dagli obiettivi di quelli di Cupertino. La novità del progetto sarà quindi quello di favorire la crescita e l’innovazione all’interno di un ecosistema Web aperto, finora messo in discussione da alcuni limiti di Webkit.

Staremo a vedere.

Sebbene nelle note di versione di Chrome è menzionato ancora WebKit:

chrome 28

La nota nel  SVN revision log ufficiale non lascia dubbi, il passaggio a Blink è iniziato:

chrome 28-192202

Ricordiamo che  sono disponibili le seguenti versioni di Google Chrome (esistono diverse versioni che coincidono con il diverso grado di sviluppo e stabilità):

STABLE: E’ la versione più tranquilla e ufficiale. Stabile e veloce il browser di Google è il migliore in circolazione. (attualmente ver. 26.0.1410.43). I rilasci avvengono all’incirca ogni sei settimane.

BETA: Si tratta di una versione che contiene alcuni sviluppi portati avanti dal team di Chrome. I rilasci avvengono mensilmente con gli update testati del canale DEV e le prestazioni sono paragonabili alla versione Stable. (attualmente ver.  27.0.1453.15)

DEV: Si tratta della versione raccomandata per gli sviluppatori. Viene rilasciata con una cadenza quindicinale e contiene tutte le correzioni agli errori e le novità Il problema è che essendo questa una versione di prova potrebbero verificarsi crash o altri inconvenienti (al momento ver. 28.0.1464.0). Personalmente la utilizzo per essere il primo a provare le nuove features prodotte e anche se ogni tanto ci sono problemi, la utilizzo con molta soddisfazione.

CANARY: E’ la versione più spinta, a solo uso di sviluppo. Non essendo stabile non è adatta a normale utilizzo degli end-user.

Il CITTADINO IMPERFETTO ringrazia sentitamente il team di CHROME. Potete trovare maggiori informazioni direttamente a questo indirizzo: http://dev.chromium.org/getting-involved/dev-channel.

%d blogger hanno fatto clic su Mi Piace per questo: