Monthly Archives: August 2009

Nuova grafica per Ebay

EbayEra diventata davvero obsoleta, ma famigliare, la grafica di Ebay.

Forse per non disorientare gli utenti le modifiche effettuate nel tempo sono sempre state poche.

Da oggi si può notare invece un sostanziale cambiamento nelle pagine dei prodotti.

Il restyling era già presente da diverso tempo su altre versioni (lo avevo visto già su ebay.de) del sito di aste più famoso al mondo.

Cosa ne pensate?

Galileo’s telescope – Il telescopio di Galielo Galilei

Oggi Google.it celebra Galielo Galilei e il 400esimo anniversario della sua invenzione più famosa, cioè il telescopio. Fu infatti nel 1609 che Galileo brevettò il suo cannocchiale.

Ci saremmo aspettati un link alla ricerca [Telescopio di Galileo] ma, stranamente, il logo celebrativo punta invece alla serp [Galileo’s telescope] e presenta anche title e testo alternativo in inglese: 400th Anniversary of Galileo’s Telescope.

Una svista o una scelta ben precisa? Non mi stupirei di una traduzione correttiva nel corso delle prossime ore.

Galileo's telescope

Un’ulteriore particolarità deriva dall’url linkato che evidenzia un uso più invasivo di javascript.
Niente di trascendetale, ma una curiosità, infatti il link html è a questo url
http://www.google.it/search?q=Galileo%27s+telescope&ct=galileo09&oi=ddle
invece l’indirizzo al quale si viene rimandati tramite sul click tramite javascript (sto testando con Firefox) è questo
http://www.google.it/#q=Galileo%27s+telescope&ct=galileo09&oi=ddle&fp=55c42ba9d4a49393

Obiettivo Cosina Cosinon Auto 55mm f/1.4

Mi è appena arrivato un obiettivo manuale che cercavo da un paio di settimane e poi ho finalmente trovato su Ebay.

Si tratta del Cosinon Auto f=55mm F=1.4, una obiettivo a focale fissa datato e con attacco M42, ma di ottima qualità, interamente in metallo e con un apertura che lo rende luminosissimo e ideale per l’effetto sfocato sullo sfondo o per scatti senza flash.

Entro un paio di giorni dovrebbe arrivarmi l’adattatore M42-Minolta AF per poterlo montare sulla mia Sony Alpha.

Appena lo proverò posterò nel blog una paio di scatti.

Che ne pensate di queste lenti?

cosina-cosinon-55mm-f-1.4

cosina-cosinon-55-f1.4

cosina-cosinon-55mm-f1.4

Problemi di attesa per la sitemap di Google

strumenti-webmaster-googleDiversi utenti degli Strumenti per Webmaster di Google stanno incontrando problemi da un mese a questa parte con la verifica dei siti e con l’invio (o reinvio) di sitemap.

Il problema si manifesta con la permanenza dello stato di “attesa” attesa per giorni e giorni.

Si tratta di un inconveniente noto ai tecnici di Google e per il quale non si può far altro che aspettare..

A differenza da quanto dichiarato da Google, mi sento di affermare che in diverse situazioni il problema può causare ritardi nell’indicizzazione.

Navigare anonimi, sicuro per davvero?

Utente anonimoEsistono decine di servizi online, alcuni gratuiti, altri a pagamento, che offrono navigazione “anonima”.

La domanda nasce spontanea: si è anonimi per davvero usando questi siti?
La risposta è per certi versi scontata: su Internet vi possono essere vari gradi di anonimato, ma mai l’anonimato in senso assoluto.

Su siti che gestisco mi è capitato molto spesso di ricevere visite da Anonymouse.org.

In particolare in un caso si trattava di un utente di un forum che voleva inviare insulti  senza essere rintracciabile.
Ma ha solo avuto il merito di stimolare la mia fantasia informatica…

Il metodo che illustro di seguito, ideato da me, ma non escludo possa essere stato usato anche da altri, mi servì a bloccare e  ad individuare quel malintenzionato che giocava a nascondino.

L’esempio sarà sviluppato a grandi linee proprio considerando Anonymouse.org, ma il metodo può essere riadattato, ampliato e impiegato anche per altri servizi.

Analisi del servizio:

Sul sito http://anonymouse.org/ è presente un campo in cui è possibile digitare un qualsiasi indirizzo web da visualizzare in forma anonima.

La pagina web viene dunque richiamata dal server di Anonymouse, che si comporta come un proxy.
Tutti i link all’interno della pagina (link testuali, richiami di css e javascript e immagini) vengono sostituiti con altri filtrati, per evitare che  si perda l’anonimato. Cioè, ad esempio, se si visita una pagina di www.matarrelli.com, i link alla home page contenuti nel codice html diventano tutti di questo tipo:

http://anonymouse.org/cgi-bin/anon-www.cgi/http//www.matarrelli.com/

Così anche cliccando si rimane schermati. Altrettanto vale per tutti i link ad altre pagine e per i richiami javascript e le immagini che diventano del tipo:

http://anonymouse.org/cgi-bin/anon-www.cgi/http//www.matarrelli.com/script.js

http://anonymouse.org/cgi-bin/anon-www.cgi/http//www.matarrelli.com/immagine.jpg

In questo modo navigando si rimane sempre anonimi, anche gli script e le immagini non sono richiamati col proprio ip e con il proprio user agent, ma con quello di Anonymouse..
In parole povere non si lascia mai traccia perché nessuna richiesta è effettuata direttamente dal browser dell’utente al server di destinazione.

Allora come fare a riconoscere l’utente?

Agiamo in maniera ibrida, coniugando operazioni lato server con javascript, che agisce notoriamente lato client.

Le richieste al server fatte da Anonymouse hanno due caratteristiche:

  1. Ip, che però potrebbe cambiare nel tempo. Non ho effettuato verifiche in tal senso;
  2. User Agent, che è sempre lo stesso ed è http://Anonymouse.org/ (Unix);

Soffermiamo la nostra attenzione sullo user agent, che è costante nel tempo.
Possiamo istruire il server affinché lo riconosca e compia delle operazioni “speciali”.
Possiamo, se siamo su piattaforma Apache, impostare l’htaccess affinché ogni qual volta lo user agent contine la parola Anonymouse anzichè mostrare la pagine richiesta, mostri una pagina ad hoc denominata anonimo.php

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Anonymouse
RewriteRule (.*) anonimo.php

Con questo passaggio abbiamo già inibito l’accesso al sito, in quanto l’utente non vede la pagina richiesta, ma sempre la pagina anonimo.php

Però noi vogliamo fare di più, vogliamo scovare l’ip reale dell’utente. Qui entra in gioco il codice javascript che verrà inserire nel file anonimo.php.

Come anticipato, qualsiasi richiamo javascript viene sostituito nella versione schermata, dunque il codice originale:

<script type=”text/javascript” language=”javascript” src=”http//www.matarrelli.com/script.js” ></script>

viene sostituito:

<script type=”text/javascript” language=”javascript” src=”http://anonymouse.org/cgi-bin/anon-www.cgi/http//www.matarrelli.com/script.js” ></script>

Dobbiamo necessariamente ingannare il bot che effettua le sostituzioni.
Un metodo per farlo, molto semplice ed efficace, consiste nel non scrivere un indirizzo completo di richiamo, ma nel far effettuare il richiamo a javascript stesso, spezzettandolo opportunamente. Ecco cosa intendo:

<script type=”text/javascript” language=”javascript”>
document.write(‘<script type=”text/javascript”‘+’ language=”javascript” s’+’rc=”‘);
document.write(‘ht’+’tp’+’://’+’ww’+’w.’);
document.write(‘matarrelli’+’.com’);
document.write(‘/script.j’+’s” >’);
</script>

In questo caso javascript stesso richiama un altro script, ricostruendone l’indirizzo originale da più pezzetti di stringa. Anonymouse non riuscirà ad individuare l’operazione, che non verrà perciò schermata.

Il richiamo al file script.js viene effettuato direttamente dal browser dell’utente al server che contiene la pagina web. Anonymouse è del tutto bypassato.

Nel file script.js possiamo inserire varie cose, la cosa più semplice è inserire il redirect ad un file che proceda a memorizzare l’ip e lo user agent originale dell’utente:

document.location.href=”https://www.matarrelli.com/log.php”;

Il file log.php può essere costruito molto semplicemente:

<?php

$filename = “anonimi.php”;

//pesca i dati dell’utente
$ua = $_SERVER[“HTTP_USER_AGENT”]; // user agent
$ip= getenv(‘REMOTE_ADDR’); // indirizzo ip

// individua l’esatta ora e data
$giorno= date(“D”);
$data = date(“d”);
$ora = date(“H”);
$minuti = date(“i”);
$mese = date(“F”);
$anno = date(“Y”);

//memorizza i dati nel file di nome $filename
if(!($fp = fopen($filename,”a”))) die (“non riesco ad aprire o creare il file”);
$html = “<p style=\”font-size:9px;\”>”.” “.$data.” “.$mese.” “.$anno.” – “.$ora.”:”.$minuti.” \n”.”  User Agent: “.$ua.” \n”.”  IP: “.$ip.” \n”.” </p>”;
fwrite ($fp, $html);
fclose($fp);

?>

Nel file anonimi.php viene memorizzata la data e l’ora della visita, insieme a ip e user agent originali.

Missione compiuta,  l’anonimo è smascherato.

P.S. grazie all’individuazione dell’ip (non sapete che soddisfazione :-)) l’utente fu bannato dal mio forum sia con il nickname anonimo che aveva creato sia con quello che usava abitualmente per scrivere.