Autor Zpráva
Skogen
Profil *
Mám udělánu hlasovací fičurku v php a hodnota se odesílá metodou GET z klikací mapy, t.j. hlasuje se za pomoci klasického odkazu.

Problém je, že mi na odkaz „brnkají“ boti vyhledávačů, zejména googlebot je otravný, protože alespoň z některých IP nerespektuje ani rel="nofollow". Kromě tohoto tagu používám i blacklist s IP vyhledávačů, ale to je taková sisyfofská práce...

Kvůli té klikací mapě nechci použít řešení pomocí formulářů, leda by snad šla klikací zóna také namapovat. Odkaz javascriptem už prý taky není spolehlivým řešením, existuje nějaký jiný elegantní způsob, jak zajistit, aby boti přes klasické odkazy „nehlasovali“?
Joker
Profil
Skogen:
Podle mě neexistuje, protože minimálně někteří roboti budou procházet jednoduše cokoliv, kam se dostanou.

A „ti zlí“ hledající formuláře na komentářový spam a podobně určitě nebudou respektovat ani zákazy typu nofollow.

Dodatek: Možná efektivnější než blokovat jejich IP by bylo blokovat jejich user-agenty.
Skogen
Profil *
Joker:
Aha... Díky. Jdu zapátrat po něčem okolo user-agentů, tohle mě zatím nějak úplně minulo :)
Amunak
Profil
Joker:
Nebudou se "ti zlí" tvářit jako běžný prohlížeč?
Joker
Profil
Amunak:
Nebudou se "ti zlí" tvářit jako běžný prohlížeč?
Někteří asi ano.
I tak mi to připadá efektivnější, než blokování IP adresy.
Str4wberry
Profil
Hodné roboty lze zakázat na určitých URL souborem robots.txt.
User-agent: *
Disallow: /

Pro ty zlé je řešení klasická (odpověď na otázku / opisování kódu) ochrana jako je třeba na této diskusi u přidávání příspěvku.

<p id="spamprotirobotum">Ochrana proti spamu. Napište prosím číslo dvacet-čtyři: <input type="text" name="robot" value="" id="protirobotum"></p>
<script>
/* tento skript vloží do příslušného políčka  */
document.getElementById("protirobotum").value="24";
document.getElementById("spamprotirobotum").style.display = "none";
</script>
jenikkozak
Profil
Na tohle se mi osvědčilo použití skrytého odkazu, který zakáže hlasování IP adrese, která na něj vstoupí. Tohle na nežádoucí roboty funguje, protože jsou tak hloupé, že z HTML vytáhnout odkazy a procházejí je postupně jeden za druhým.

Skogen:
Odkaz javascriptem už prý taky není spolehlivým řešením
Jak se to vezme. Dá se využít toho, že robot vyhledavače JavaScript nejspíše čte, ale nezpracovává. A dá se předpokládat, že v nejbližších deseti letech tomu nebude jinak.

zejména googlebot je otravný, protože alespoň z některých IP nerespektuje ani rel="nofollow"
Googlebot by to měl respektovat. Ověř si z logu, kudy na tu stránku chodí. Možná má jinou cestu. Pokud na tu URL vedl dříve odkaz bez rel="nofollow", mělo by pomoci zablokování v robots.txt nebo vyřazení stránky ve Webmaster Tools.
Pak je ještě otázkou, jestli vše, co se prezentuje jako Googlebot, je skutečně robot od Googlu.
_es
Profil
Skogen:
Odkaz javascriptem už prý taky není spolehlivým řešením
Ktorý konkrétny robot prejde na odkaz dostupný len cez JS? Skúšal si to? No riešenie cez JS má pochopiteľne nevýhodu, že nefunguje aj obyčajným návštevníkom s vypnutým či nefunkčným JS.

jenikkozak:
Dá se využít toho, že robot vyhledavače JavaScript nejspíše čte, ale nezpracovává.
Pochybujem, že by trebárs načítaval externé JS súbory. JS v HTML kóde samozrejme „číta“, lebo musí, no ignoruje.
Davex
Profil
_es:
JS v HTML kóde samozrejme ‚číta‘, lebo musí, no ignoruje.
Googlebot JavaScript ve stránce čte a zpracovává. Nevím, jestli zpracovává i události, ale minimálně provádí funkci document.write a získává použité proměnné. Například e-mail skládám na webu pomocí několika jednoduchých operací a Google ho najde v plném tvaru.
jenikkozak
Profil
_es:
JS v HTML kóde samozrejme ‚číta‘, lebo musí, no ignoruje.
Údajně dokáže číst řetězce, které se do stránky vypisují (pomocí document.write a innerHTML), a chápe document.location, leze na adresy AJAXu a umí spojovat proměnné, které se pak vypisují. Pokud by JS ignoroval, pak by toto neuměl.

Pochybujem, že by trebárs načítaval externé JS súbory.
66.249.72.217 - - [02/Jun/2013:22:33:32 +0200] "GET /skripty/napoveda.js HTTP/1.1" 200 1518 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Že se kdejaký robot hlásí jako Googlebot, je známá věc. Ale nevím, jestli se dá takto podvrhnout i IP. Tahle by totiž Googlu patřit měla.
_es
Profil
Davex, jenikkozak:
Predpokladám, že ak vyhľadávač JS spracováva, tak nespracuje možnú interakciu JS s návštevníkom. Napríklad „odkaz“ cez <select>, ktorý presmerovával na inú stránku cez JS niekedy nenašiel, ako je to teraz neviem, možno by to stálo za vyskúšanie. Odkaz (<a>) vypísaný cez document.write by však zaindexovať mohol.
Str4wberry
Profil
Reakce na jenikkozaka:
„zejména googlebot je otravný, protože alespoň z některých IP nerespektuje ani rel="nofollow"“
Googlebot by to měl respektovat.

Máš to ověřené?
jenikkozak
Profil
Bylo by zbabělé najednou vykládat, že jsem nikdy netvrdil, že na tu URL Google nikdy nevstoupí, že jo? Fakt, že jsem nenapsal „respektuje“, ale „měl by respektovat“ mě asi taky nespasí...
Atribut rel="nofollow" jsem snad nikdy nepoužil. (A to právě ze stejného důvodu, proč je občas význam toho atributu zpochybňován.) Žil jsem v tom, že odkazem s nofollow Google neprochází. Ale nevím, jestli mi to někdy namluvil Google nebo někdo jiný. Takže ne, ověřené to nemám.
weroro
Profil
Ja som prečítal tento článok od Googlu a osobne som ostal zmätený [samozrejme je to asi iba môj problém] http://support.google.com/webmasters/bin/answer.py?hl=cs&answer=96569
Petr ZZZ
Profil
Jednu moji stránku s noindex, follow Google, zdá se, poctivě zatlouká; nenajde ji např. na heslo "Retal kouzlo" (odkaz na ni je ve vláknu Reminiscence na sraz DJPW 2010). Vede na ni ale minimálně jeden follow odkaz (z Taurova povídání o srazu), takže ji zřejmě zatlouká kvůli tomu noindexu. Jak se chová u stránky, na kterou vedou pouze nofollow odkazy, která ale nemá zakázané indexování, nemám vyzkoušeno. (Kdybyste někdo zkoušel něco z té mé stránky hledat, koukněte se raději do kódu, jaký řetězec hledáte – spousta slov je tam obdařena entitou &shy;, která je občas tak trochu nevyzpytatelná.)
Davex
Profil
Petr ZZZ:
Jak se chová u stránky, na kterou vedou pouze nofollow odkazy, která ale nemá zakázané indexování, nemám vyzkoušeno.
Já to vyzkoušené mám. Na mé stránky s několika živými ukázkami vedou odkazy pouze z této diskuse s atributem rel="nofollow" a Google i Seznam stránky v indexu mají. Google je nabízí ve výsledcích hledání méně ochotně než Seznam.
Skogen
Profil *
Takže by mohlo stačit něco na způsob


if (strpos($_SERVER['HTTP_USER_AGENT'], "Google") !== false) $ban = "ANO";
else $ban = "NE";
...

Tedy pokud se robot hodlá identifikovat - a pokud ne, asi ho stejně nepoznám.

Str4wberry:

Ano, pokud by podobné ověření šlo jednoduše implementovat i do klasického odkazu, asi by to bylo stejně jako zajištění fóra dobré, když to s javascriptem dosud funguje...

jenikkozak:

Asi to tak bude, nofollow jsem doplnil až když mi boti začali hlasovat, takže je možné, že se Googlebot řídí stavem před doplněním.

Robot.txt, ani výmaz indexování natvrdo přes Tools použít nechci, stránky samotné by se určitě indexovat měly, jde jen o ty odkazy, které patří ke skriptu na hlasování.
Camo
Profil
jenikkozak:
To s tým skrytým odkazom je celkom zaujímavé. Aká životnosť sa dáva tým IP adresám??
Str4wberry
Profil
Reakce na Skogena:
Robot.txt, ani výmaz indexování natvrdo přes Tools použít nechci, stránky samotné by se určitě indexovat měly, jde jen o ty odkazy, které patří ke skriptu na hlasování.
Souborem robots.txt lze zakázat jen určité URL, nemusí jít nutně o celý web. (Ukázka z této diskuse.)

Ano, pokud by podobné ověření šlo jednoduše implementovat i do klasického odkazu, asi by to bylo stejně jako zajištění fóra dobré, když to s javascriptem dosud funguje...
Pokud to má fungovat i bez JS, tak je potřeba použít ten formulář. Je v tom nějaký problém? Formulářová tlačítka lze nastylovat tak, že budou vypadat jako normální odkazy.
jenikkozak
Profil
Skogen:
Takže by mohlo stačit něco na způsob
Myslím že ne.
- Skutečný Googlebot není tak hloupý, aby opakovaně masivně lezl na stránky, na kterých nic není.
- Opravdový Googlebot stránky, které má v indexu, při dalších návštěvách neprochází lineárně (že by z HTML vytáhnul první odkaz, pak druhý, třetí), prochází je nahodile. A stránky se stejnou důležitostí prochází s podobnou frekvencí. (Nedělá to, že by na první odkaz hlasování šel dvacetkrát a na ty další jednou.) To znamená, že on ti moc poměr hlasů nezmění. A u veřejných hlasování jde právě o ten poměr.
- Tímhle způsobem omezíš pár spamovacích, vykrádacích, pozorovacích (a kdovíjakých dalších) robotů, které se vydávají za Googlebot. Ovšem na ostatní to fungovat nebude.

Camo:
To s tým skrytým odkazom je celkom zaujímavé. Aká životnosť sa dáva tým IP adresám??
V aplikaci se to tváří jako klasická možnost hlasování. Hloupý robot tam vleze, započítá se mu hlas, který se nikde nezobrazuje, a znemožní se mu další hlasování stejně, jako kdyby „klikl“ na některou ze skutečného výběru.
Skogen
Profil *
jenikkozak:

- jistě, IP se ale tak jako tak kontrolují, takže opakované hlasování není možné, z čehož ovšem vyplývá i to, že poměr hlasování se s větší pravděpodobnosti změní, tím spíš, že těch hlasů zase tolik nebývá, dle okolností i velice významně. Neměl by si „kliknout“ ani jednou.

- vím, musel bych kontrolovat i další řetězce, ale jak napsal Joker, pořád je to lepší, než se snažit trefit do jednotlivých IP.

Str4wberry:

Aha. Taky možnost. Musel bych do toho souboru nechat zapisovat nová url, ale šlo by to. Stojí to za to? Tedy, je to skutečně lepší než nofollow?

Co se týče řešení na základě formuláře... Mám tam tohle:

<map name=\"user-vote\">
<area href=\"?id=".$id."&amp;poll=1#voting\" shape=\"rect\" coords=\"0,0,16,130\" rel=\"nofollow\" onmouseover=\"DETAILS('rating-01')\" onmouseout=\"DETAILS('rating-01')\">
<area href=\"?id=".$id."&amp;poll=2#voting\" shape=\"rect\" coords=\"16,0,32,130\" rel=\"nofollow\" onmouseover=\"DETAILS('rating-02')\" onmouseout=\"DETAILS('rating-02')\">
<area href=\"?id=".$id."&amp;poll=3#voting\" shape=\"rect\" coords=\"32,0,48,130\" rel=\"nofollow\" onmouseover=\"DETAILS('rating-03')\" onmouseout=\"DETAILS('rating-03')\">
.
.
.
</map>"

Živá ukázka tady, klidně zaklikejte, večer si to u tohohle článku srovnám.

P.S.: Vím, že to celé jde řešit i úplně jinak, ale až na ten problém s roboty mi to jinak vyhovuje :)
Camo
Profil
jenikkozak:
Ale pýtal som sa na životnosť tých IPčiek....
A môže sa stať, že pred tým klikne na správny odkaz a ten sa mu započíta(než teda klikne na ten prefíkaný odkaz). Asi by to mal by ť prvý odkaz v ankete.

V aplikaci se to tváří jako klasická možnost hlasování.
Ale má to display:none nie?
jenikkozak
Profil
Camo:
Ale pýtal som sa na životnosť tých IPčiek....
Nevím, na co se ptáš. Prostě zazvoní zvonec a pokud ty IP neumřely, tak žijí dodnes.

Ale má to display:none nie?
Například. Nebo má nastavený nulový rozměr, je posunutá mimo zobrazovanou oblast nebo je něčím překrytá, možností je více. A proto nehrozí, že je v blízké době budou roboti umět zpracovávat.

Skogen:
vím, musel bych kontrolovat i další řetězce, ale jak napsal Joker, pořád je to lepší, než se snažit trefit do jednotlivých IP.
To máš prašť jako uhoď. Ani filtrování IP, ani user-agentu nebude dostatečně efektivní. Blacklisty bys musel aktualizovat (v závislosti na úspěchu svého webu) denně. Fungovat ti to bude, dokud ten web bude malý, na internetu neznámý a pro roboty nezajímavý. Pak ti tam denně naběhne třeba deset dvacet robotů. Aktualizování blacklistů tě velmi rychle omrzí, zvlášť když si řekneš, že u takovéhoto hlasování se jeho udržování nevyplatí.
Skogen
Profil *
jenikkozak:

Díky za komentář. Pak to asi udělám tak, jak radil Str4wberry. Nechám skript proběhnout a hodnoty zpracovat a uložit jen za podmínky správné hodnoty uložené v JS. Ať si na samotný odkaz klikají, jak chtějí.

Díky všem za radu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: