Testo Nascosto [Guida allo Spam] Thursday, Dec 14 2006
Guide e definizioni 11:11 pm
Da quando è nato lo spamdexing è nata l’esigenza di trovare tecniche per ingannare i motori di ricerca, mostrando agli utenti un output accattivante, privo di tutti i tags e i testi necessari all’ottimizzazione, mentre ai motori di ricerca viene fornita una pagina idonea ad ottenere un buon ranking.
Nonostante le varie tecniche si scindano ideologicamente in cloaking, redirect e testo nascosto, credo sia più corretto parlare unicamente di testo nascosto in quanto il fine di tutti questi codici è quello di nascondere all’utente qualcosa che viene invece visto dagli spiders.
Partendo dalle tecniche più vecchie e ormai obsolete tenterò di guidarvi verso le ultime novità, proponendovi alcuni sistemi ideati da me, e altri che ho imparato nel corso degli anni.
IL COLORE
Una delle tecniche più vecchie ed ormai obsoleta da parecchio tempo è quella di nascondere del testo semplicemente colorandolo con lo stesso colore dello sfondo. Nonostante questa tecnica sia ormai facilmente riconoscibile come spam da tutti i maggiori motori di ricerca, viene ancora utilizzata da diversi siti web, per lo più amatoriali o di piccole aziende. Ciò che rende molto pericoloso l’utilizzo di questo tipo di spam è sia la semplicità con cui è possibile individuarlo tramite algoritmi, sia l’alta possibilità di venire segnalati da webmaster concorrenti, in quanto è una tecnica facilmente identificabile all’interno di una pagina.
LA POSIZIONE
Un’altra tecnica obsoleta, nonostante sia tuttora molto utilizzata, consiste nel posizionare del testo ad una coordinata non visibile dall’utente. Di solito viene scelta una coordinata negativa molto elevata in modo che sia praticamente impossibile per l’utente alle prime armi di accorgersi di qualcosa. Un esempio di css può essere il seguente:
.nascosto{
position:absolute;
left: -3001px;
top:0px;
}
Nonostante ciò è dal 2003/2004 che google dichiarando guerra allo spamdexing ha rivelato di saper individuare questa tecnica.
DISPLAY:NONE
Altra tecnica ormai obsoleta da anni è il display:none. Un attributo facilmente settabile tramite css che elimina l’output visivo di un oggetto. Un esempio pratico è il seguente:
.nascosto{
display:none;
}
Ciò che per qualche tempo ha reso i siti che usano questa tecnica meno “bannabili” di quelli che usano tecniche meno facili da individuare come il colore o la posizione è il fatto che questo codice è utilizzabile anche per scopi non necessariamente spam, come la creazione di menù a tendina. Questo è, infatti, uno dei dilemmi che ha condotto i motori di ricerca a evitare algoritmi automatici di ban, preferendo la presenza di una parte umana (il Quality Rater) che si occupa di giudicare i siti segnalati prima di eliminarli dal database. Ci sono però molti validi motivi che spiegano la necessità di entrambe le parti (algoritmica e umana). La prima si occupa di filtrare i siti potenzialmente spam, in modo che i quality raters non vengano sommersi da una mole di lavoro troppo elevata. La seconda oltre a giudicare il sito in sè, si occupa indirettamente di giudicare anche la qualità degli algoritmi in modo da renderli sempre più perfetti e sempre più indipendenti dalla parte umana.
IL REDIRECT JAVASCRIPT
Un altro metodo per nascondere testi che ha funzionato fino a pochi anni fa è il redirect javascript. Si potrebbe obiettare che non è un vero metodo per nascondere, ma piuttosto un sistema per creare doorway. Nonostante ciò il fine ultimo è quello di mostrare un contenuto al motore ed un altro all’utente. Un esempio di redirect javascript è il seguente:
<script type=”text/javascript”>
<!- -
function redir() {location.href = “http://www.miosito.est/”;
}
window.setTimeout(”redir()”, 5000);
//- -></script>
Il funzionamento di questo sistema lato SEO è il seguente: mentre lo spider che entra nella pagina si scarica il codice ed esce immediatamente, l’utente dopo qualche secondo viene rediretto verso un’altra pagina.
Questa tecnica però ha il difetto di poter essere facilmente interpretata dagli algoritmi di google e di conseguenza il ban è molto probabile.
CLOAKING (USER AGENT)
Uno dei sistemi più utilizzati per nascondere il testo è il cloaking tramite user agent. Il funzionamento di questa tecnica è il seguente: viene analizzato l’user agent del visitatore e se questo viene riconosciuto come l’user agent di uno spider viene mostrato un determinato codice, altrimenti ne viene mostrato un altro. Nel seguente esempio se l’user agent dello spider è diverso da quello di google viene eseguito un redirect, altrimenti viene normalmente eseguito tutto il rimanente codice:
if (!strpos(strtolower($_SERVER[’HTTP_USER_AGENT’]), “googlebot”)) {
header(”Location: http://www.kerouac3001.com/”);
exit;}
I vantaggi di questa tecnica sono enormi:
- E’ possibile creare sistemi avanzati di redirect basandosi sui dati dell’utente, come query di provenienza ed altro.
- E’ facile da personalizzare e difficile da individuare sia per gli spider che per gli utenti non esperti.
- Permette la totale separazione tra codice SEO oriented e pagina SEM oriented.
Gli svantaggi sono i soliti:
- E’ possibile per un motore di ricerca individuare questo tipo di cloaking, semplicemente utilizzando user agents da utente.
- E’ possibile per un utente avanzato individuare questo tipo di spam semplicemente guardando se è presente un redirect o se la cache della pagina è diversa dal suo reale contenuto.
Questi due svantaggi per anni non hanno causato grandi problemi, ma con l’intensificarsi dei controlli antispam, questa tecnica sta cominciando a dimostrarsi obsoleta, ed è per questo che gli spammers studiano metodi per perfezionarla, qui di seguito vi fornisco alcuni miei sistemi e tecniche che ho imparato da altri.
REFERER-BASED CLOAKING
Il referer-based cloaking è un sistema di cloak che non si basa sull’user agent, ma sul referer. Cioè mostra un determinato contenuto se il referer è vuoto, un altro se invece non lo è. Il referer è vuoto solo nel caso di visitatori diretti, cioè dell’insieme di visitatori di cui fa parte anche lo spider. Un esempio pratico in php del sistema appena descritto è il seguente:
if ($_SERVER[’HTTP_REFERER’]!=”") {
header(”Location: http://www.kerouac3001.com/”);
exit;}
Ovviamente si tratta solo di un esempio che è possibile adattare alle proprie esigenze. E’ possibile fare redirect a seconda di un determinato referer o (usando la mia tecnica preferita) a seconda di una query, utilizzando un sistema che possiamo chiamare query-based cloaking.
Il query-based cloaking permette di mostrare ad un utente un sito attinente a ciò che stava cercando e dunque è una tecnica grey hat più che black hat, in quanto porta svantaggi solo ai concorrenti e al motore di ricerca, mentre è innocua o addirittura utile per l’utente.
I vantaggi di questa tecnica sono maggiori se abinati non ad un cambiamento dei contenuti interni, ma ad un sistema di redirect, in modo che l’utente medio non diventi per nessuna ragione un visitatore diretto. Questo però si trasforma in uno svantaggio in quanto è facilmente individuabile dai Quality Raters e da qualunque webmaster.
LANGUAGE-BASED CLOAKING
Un altra tecnica di cui fornisco solo la descrizione è il cloaking basato sulla lingua che però ha come unico scopo quello di fornire pagine nella lingua più idonea alle esigenze dell’utente e che quindi non è strettamente legato al nostro studio sul testo nascosto.
IP-BASED CLOAKING
Simile all’user-agent cloaking, l’ip-based cloaking si basa appunto sull’ip dell’utente per determinare se è uno spider o no. Un esempio pratico può essere il seguente:
if (!strpos(strtolower($_SERVER[’REMOTE_ADDR’]), “66.155.23.”)) {
header(”Location: http://www.kerouac3001.com/”);
exit;}
Questa tecnica però ha gli stessi svantaggi di quella basata sull’user agent e può essere dunque facilmente individuata e pesantemente penalizzata.
DOM CLOAKING
Una delle ultime tecniche che ho ideato è il dom cloaking, ovvero un tipo di cloak basato su codice javascript. Il funzionamento è il seguente: quando il javascript viene attivato (tramite l’evento onload) il codice html presente all’interno di un determinato tag viene svuotato e sostituito con un altro codice html. Ciò che accade è che l’utente vedrà l’output fornito tramite javascript mentre il motore di ricerca darà peso al codice sorgente. Un esempio di come utilizzare questa tecnica è il seguente:
function googleisaspammer(){
var shtml = “CODICE HTML”;
var md = document;
var d = md.getElementById(”cloack”);
d.innerHTML = shtml;}
window.onload = googleisaspammer;
Nell’esempio il codice javascript, quando viene azionato, eliminerà il contenuto interno all’elemento html con id=”cloack” e lo sostituirà con CODICE HTML. Il vantaggio di questo sistema è nell’enorme difficoltà che avrà il motore di ricerca ad individuarlo tramite algoritmo, in quanto è difficile interpretare il funzionamento di un javascript e soprattutto capire se sta effettuando operazioni spam o no.
Infatti ciò che reputo interessante in questa tecnica è il fatto che non viene mostrato un codice al motore ed uno all’utente, ma entrambi vedono lo stesso codice, ma il motore da peso a ciò che l’utente non vede, mentre l’utente da peso a ciò che il motore non giudica.
Lo svantaggio maggiore è invece nella lentezza con cui viene effettuata la sostituzione del codice che potrebbe lasciar intravedere all’utente il codice reale per qualche secondo.
Ovviamente un Quality Rater particolarmente intelligente (o con una connessione molto lenta) potrebbe capire che c’è quacosa che non va.
CSS CLOAKING
Interessante anche un’altra tecnica che consiste nel mettere il cloaking non nella pagina, ma nel css, in modo da poter usare il display:none (o altro) senza che lo spider lo sappia. Il funzionamento è il seguente:
- si crea un file php (che chiameremo style.php) e si fa in modo che se l’utente è uno spider mostri un determinato codice css, altrimenti ne mostra un altro.
- si crea una regola nell’ htaccess in modo da riscrivere l’url che richiama style.php in style.css
- si richiama style.css nella nostra pagina web
Un esempio di codice da inserire in style.php può essere il seguente:
if (!strpos(strtolower($_SERVER[’HTTP_USER_AGENT’]), “googlebot”)) {
echo “.nascosto{ \n display:none; \n}”;
}
Lo svantaggio di questa tecnica è come al solito lo stesso: qualunque motore di ricerca volendo potrebbe capire il trucco tramite un algoritmo. Ovviamente se ben fatto, questo sistema ha il vantaggio di essere più difficile da individuare rispetto agli altri sistemi di cloaking onPage, sia tramite algoritmo che tramite intervento umano.
CLIP
Altra tecnica particolare è il clip, che nonostante abbia un effetto simile al display:none, è un pò meno individuabile, soprattutto perché è poco conosciuta.
CLIP è un’istruzione di CSS che assegna ad un elemento una dimensione precisa, tramite: x, y, width e height. Con CLIP è possibile quindi assegnare ad un elemento una dimensione nulla e dunque renderlo invisibile. E’ però obbligatorio inserire anche un position:absolute per far funzionare il sistema. Un esempio di CSS può essere il seguente:
.nascosto {
CLIP: rect(0px 0px 0px 0px);
POSITION: absolute;
}
Ovviamente per qualsiasi motore di ricerca può essere facile individuare questa tecnica e penalizzarla, anche se dubito che venga attualmente considerata come spam.
LETTER-SPACING
Una delle ultime tecniche che ho ideato fa uso dell’attributo letter-spacing per “nascondere” il testo. In realtà non si tratta di un metodo normale e non è nemmeno perfettamente funzionante, ma è così insolito che potrebbe non essere stato ancora individuato come spam dagli spider. La tecnica consiste nel creare una classe e settare al suo interno l’attributo letter-spacing ad un numero elevato e negativo, per esempio:
.nascosto {
letter-spacing: -999999999999em;
}
L’effetto è quello di inserire tra le lettere di un testo uno spazio di -999999999999em che farà in modo che non venga mostrato nulla tranne la prima lettera del testo inserito. Il funzionamento di questa tecnica non è però garantito e presenta ancora alcuni problemi.
WORD-SPACING
Simile alla tecnica precedentemente descritta tramite word-spacing si può settare uno spazio tra le parole. Ecco un esempio che sfrutta questa tecnica per nascondere un testo:
.nascosto {
word-spacing: -30013001px;
line-height: 0pt;
}
Line-height se settato a 0pt fa in modo che non ci sia spazio tra una riga e la successiva, così viene tutto scritto su una sola riga (sovrascrivendo il testo precedente). Questo comando usato in combinazione con word-spacing, fa in modo che il testo sia scritto su una sola riga e che tutte le parole abbiano tra di loro un elevato spazio negativo. Così il testo scompare.
Questa tecnica come la precedente presenta diverse problematiche.
Trackback URI



Questo blog è parte del network
December 15th, 2006 at 12:18 am
stampo!
grazieeeee!
December 15th, 2006 at 1:09 am
Suggerisco anche le tecniche di javascript inserite in un file flash che se ben criptato rende difficile la lettura da parte del motore, ovviamente un umano può sempre scoprire queste tecniche.
December 15th, 2006 at 7:41 am
Molto interessante davvero, poi quella del clip effettivamente non l’avevo ancora pensata. Domanda: E’ sbagliato mettere molto testo con parole chiave nell’alt delle immagini? Tipo riempire con il nostro SeoTesto una qualunque immagine che si usa come bordo o angolo del layout?
December 15th, 2006 at 9:54 am
@ellegi: si ovviamente finora il controllo umano non sono mai riuscito a superarlo, non so se ci sia qualcuno che riesca a farlo..ne dubito
@pich: non ho idea se sia sbagliato. Su queste cose vanno seguite le linee guida sull’accessibilità.
December 16th, 2006 at 10:22 am
c’è una tecnica assolutamente non rilevabile, consiste nel mettere elementi flash e testo sotto di essi con
“style=”position:relative; top : -100″ (esempio).
provata, funziona 100%, anche se non puoi esagerare
December 16th, 2006 at 10:23 am
il io 100% era controllo non umano
December 18th, 2006 at 9:14 am
Hit Parade Del Web Marketing / Seo - Secondo Appuntamento Dicembre 2006…
Secondo appuntamento di dicembre con la hit parade con i migliori articoli dedicati al webmarketing recensiti su blog e web site del settore.
Dopo l’appuntamento di oggi, seguiranno altre nomination sul finire della prossima settimana, nei primi gior…
January 13th, 2007 at 10:07 am
e che mi dici di un div formattato coi css come segue:
div.fuckingupGG
{
background-color: #000;
font-size: 1px;
color: #fff;
background: url(white_image.jpg);
}
white_image.jpg è ovviamente un’immagine bianca: GG non ha occhi … secondo me leggerà del testo bianco su sfondo nero e rileverà la presenza di un’immagine. Ma come può capire che quell’immagine è dello stesso colore del testo e che quindi il div probabilmente serve al key stuffing? Secondo te funzionerebbe? io non ho fatto test fino ad ora.
spiego meglio la tecnica qui: http://www.nourdine.org/index.php?itemid=13
January 15th, 2007 at 9:59 pm
Grazie Vincè, ottimo articolo. Del clip non mi ricordavo.
Devo bonificare tre siti però, questo mi turba!
January 17th, 2007 at 9:15 am
Cazzate, tutte cazzate.
Google vi scopre al volo!
January 17th, 2007 at 3:02 pm
se! ma va! … e cieco come una vecchia talpa
January 17th, 2007 at 8:02 pm
@Francesco Ricci: Qualunque tecnica illecita e contraria al regolamento di Google può portare al ban. Non vedo dove sia la novità. Va, però, precisato che qui si sta parlando delle tecnica unicamente dal punto di vista dell’apprendimento e non si vuole in nessun modo incoraggiarne la pratica.
Dunque, mi permetto di criticare del tuo commento, non l’affermazione (che nonostante non sia precisa, non è certamente errata) quanto il tono che lascia trasparire la tipica ignoranza (nel più comune significato fornito dal Devoto Oli) di chi fa affermazioni non costruttive su ciò che non conosce.
Qualora tu volessi apportare un contribbuto alla discussione fornendo una dimostrazione di ciò che dici, saremo tutti lieti di ascoltare il tuo parere.
January 25th, 2007 at 6:33 pm
Beh, nonostante non ho mai adottato tecniche scorrette per posizionarmi, un pensierino con questa guida allo spam ce lo sto facendo…
February 2nd, 2007 at 3:51 pm
Non pensavo ci fossero così tante tecniche, comunque google non dorme affatto. Hanno team di persone che scandagliano i nuovi modi per fregarli.
February 21st, 2007 at 9:10 pm
Ma…francamente se i motori di ricerca bannano i siti che contengono spamming mi va benissimo ^__^ semai il problema e’ quello di riuscire a trasformare il contenuto testuale delle immagini o dei filmati in semplice testo leggibile. A questo scopo io, che non amo particolarmente tutto cio’ che e’ script, normalmente uso la tecnica CSS di text-indent ({display: none;} non e’ corretto). Sul discorso di riempire le pagine con keywords nascoste, non solo si viene bannati subito, ma succederebbe lo stesso anche se le utilizzassimo nei meta-tag e non fossero presenti effettivamente nel testo (testo che deve essere discorsivo e non un semplice elenco di termini scollegati).
Ossequi
Alberto
February 21st, 2007 at 10:39 pm
@Alberto: Nessuno mette in dubbio che esista il ban e nessuno mette in dubbio che sia necessario eliminare dai motori di ricerca i siti che violano il loro regolamento. (Anche se “violare il regolamento” è forse esagerato, visto che nessuno ha chiesto ai motori di inserire i propri siti al loro interno)
Il punto è un altro: questa intende essere una mini guida al testo nascosto non un incitamento allo spam.
March 1st, 2007 at 4:07 pm
Complimenti kerouac3001, veramente un bel articolo
Una cosa mi chiedevo, in fatto di cloacking, non è possibile sapere anche l’ip che usano i Quality Rater?
March 1st, 2007 at 5:04 pm
@lordmarin:
Non ne ho la più pallida idea ma ne dubito
March 7th, 2007 at 4:38 pm
ciao Keruac,
complimenti per l’ottimo post!
@Lordmarin: il cloacking sull’ip del quality rater non e’ fattibile perche’ il 99% di loro lavora da casa, spesso da ip dinamici, e tra l’altro e’ rarissimo che lo stesso quality rater valuti piu’ di 1 volta lo stesso sito o pagina (x cui hai voglia di ribeccargli l’Ip).
L’unica strada e’ il cloacking del quality rater basato su referer che una buona percentuale di essi lascia. Ma prima di scoprirlo bisogna leggersi e analizzare tanti ma tanti files di log e soprattutto sperare che, quando passa, non abbia il referer bloccato
March 15th, 2007 at 4:09 pm
Complimenti Keruac, per il tuo articolo !
Conoscevo alcune di queste tecniche, ma l’idea del CLIP è veramente geniale !
Voglio fare delle prove…..
March 19th, 2007 at 7:25 pm
[…] Ossia, come posso far vedere agli utenti una bella pagina priva di tutti i testi necessari al posizionamento che invece saranno mostrati ai motori di ricerca? Ovviamente senza che i motori di ricerca se ne accorgano… È questo l’argomento trattato da kerouak3001 in questo articolo. Molte le tecniche descritte. Ne consiglio la lettura! […]
July 10th, 2007 at 8:31 am
[…] Sempre più incuriosito sono andato a filtrare la serp spam solo per i risultati riguardanti il mio blog e mi sono reso conto che prima del risultato che ho trovato doveva essercene un altro, ovvero secondo la serp filtrata, risulta che prima del post sulle markov chain c’è sicuramente la guida allo spam. La prima cosa che ho pensato è stata: "ah che bello dev’essermi sfuggito: vediamo dove sono!". E mi son messo a navigare al contrario pagina dopo pagina, prestando la massima attenzione ad ogni risultato della serp. Lo ammetto quando sono arrivato a pagina 5 ho pensato con superbia: "bè chiaramente sarò a pagina 4..me lo merito". […]
July 25th, 2007 at 12:27 pm
Trovo molto utile questo post e questo blog. Mi sa che lo metto tra i preferiti e stampo tutto!
August 29th, 2007 at 4:05 pm
Mi sono imbattuto nel tuo sito per caso…
Ne giro di blog e forum, ma le informazioni interessanti e dettagliate che ho trovato qui non esistono da nessuna parte.
I miei complimenti perchè leggendo 3 righe si capisce subito che sei una persona “che c’è”
Da oggi sarò un tuo nuovo, assiduo, lettore.
Ciao.
October 8th, 2007 at 10:43 pm
ciao a tutti..
pensavo al REFERER-BASED CLOAKING….
e’ facilmente scopribile “umanamente” a causa del redirect…ma se al posto del redirect si usasse un “include()”???
Giampo
October 12th, 2007 at 4:36 pm
io sto imparando molte cose nuove…
October 20th, 2007 at 11:19 pm
Porca Mi***iaccia!!!!
non penso di aver mai letto niente di piu’ utile…dal mio precedente post qui, ho fatto delle modifiche ad un sito..beh..
per determinate parole chiave il sito non era nemmeno presente nel motore di ricerca!ora e’ in seconda pagina di google!!!
ho notato tra l’altro che le posizioni tendono a salire anche se non ci sono modifiche alla pagina..
Giampo