Autor Zpráva
David Klouček
Profil
Mám na stránce tlačítko, které přesměruje na stránku, kde se provádí nějaká akce.

<button onclick="window.location='..'">..</button>

Asi po 3 dnech jsem zjistil, že na něj ale klikají i roboti. Jak jim spolehlivě v tom zabránit? Napadá mě třeba vkládat do přes Javascript, ten ale třeba Googlebot umí.

Potřebuju aby se kliknutí robotů objevilo spíše vyjímečně.
CZghost
Profil
David Klouček:
Jestli ti jde především o roboty sbírající náhodné odkazy k infikování stránek viry, tak zkus ten javascript, Googlebot je neškodný, navíc se neustále vyvíjí. To, že na něj klikají vyhledávací roboti ještě neznamená, že stránku musí mermomocí zařadit do indexu. Je-li stránka v odděleném adresáři, pak bude bohatě stačit, když do kořene webu dáš soubor robots.txt s příkazem, který ruší indexování obsahu toho adresáře vyhledávacím robotům. Valná většina robotů tohle repsektuje a narazí-li na takový adresář, nemusíš se bát. Bát by ses měl spíš robotů, kteří vyhledávájí náhodné stránky za účelem je infikovat počítačovými viry. Takhle nakazili jinak poměrně slušný web o gamingu, stránky mi do počítače natáhly trojského koně, který pak stahoval odevšad různé viry a antivir furt jenom hulákal. Musel jsem restartovat počítač. Zajímavé, že trojského koně samotného ten antivir nezadržel, ačkoliv by měl. Před viry se jen tak neubráníš, musel by sis nainstalovat na server webový antivirus, který by takovou hrozbu identifikoval, i když v prostředí serveru nemá šanci napáchat škody. Stačí ale, aby se připojil návštěvník s Windowsy a kolotoč se roztáčí.

Bude stačit výpis pomocí document.write, klidně i po částech přes proměnnou:
<script>
var promenna  = '';
promenna     += '<button onclick="';
promenna     += 'window.location=';
promenna     += '\'skripty/skript.php?parametr=hodnota\';';
promenna     += '">';
promenna     += 'Klikni!';
promenna     += '</button>';

document.write(promenna);
</script>

Takový zápis by měl robota dostatečně zmátnout.

Jak jsem tvrdil, před vyhledávacími roboty se ubráníš pomocí zákazu indexování stránek. Takže jestli máš skript někde v samostatném adresáři, do kořene webu dej robots.txt s tímto obsahem:
User-agent: *
Disallow: /cesta/do/adresare/se/skriptem/

Ostatně je to popsané na stránkách kolegy Yuhůa. Pokud máš skript někde v bordelu mezi ostatním harampádím, kde chceš, aby roboti chodili, pak to zkus řešit odkazem, kterému nastaíš speciální třídu a atribut rel="nofollow", v CSS pak pomocí té třídy vygeneruješ hezké tlačítko ;-)
David Klouček
Profil
CZghost:
Díky za odpověď. Zkusim ten JS a kdyžtak dám vědět. Co se týče indexování, o to mi vůbec nejde, to tlačítko spouští nějakou akci co něco zapisuje do DB a proto chci kliky jenom od lidí.
CZghost
Profil
David Klouček:
to tlačítko spouští nějakou akci co něco zapisuje do DB a proto chci kliky jenom od lidí.
Tak použij to řešení pro ty roboty. Buď souborem robots.txt nebo odkazem s atributem rel="nofollow".

Jinak, vyhledávací roboti by měli ignorovat formuláře a tlačítka, který také vlastně někam odkazují. Jestli ti to proklikává i přes to tlačítko, tak robot asi nepracuje správně. Zkus se podívat na web Googlu (nebo který vyhledávač ti tohle dělá), zda tam nenajdeš něco k dokumentaci vyhledávacího robota.

Ten JS by měl být zbraní především proti škodlivým robotům, které nemají za úkol nic jiného, než se infiltrovat na stránky a různými způsoby škodit (rozesílání spamu je jednou z činností, které sem patří).
Chamurappi
Profil
Reaguji na CZghosta:
Bát by ses měl spíš robotů, kteří vyhledávájí náhodné stránky za účelem je infikovat počítačovými viry.
Tyto infekce probíhají v drtivé většině případů přes autory stránek.

musel by sis nainstalovat na server webový antivirus
Co to? Jaký smysl vlastně má toto vyprávění o virech?

Takový zápis by měl robota dostatečně zmátnout.
Jestli umí JS, tak ho to nezmate. Pokud JS nezná, tak neprojde ani přes ten onclick.


Reaguji na Davida Kloučka:
Asi po 3 dnech jsem zjistil, že na něj ale klikají i roboti.
Jsi si jistý? Jaká je to akce, která se provádí?

Napadá mě třeba vkládat do přes Javascript, ten ale třeba Googlebot umí.
Ty už ale používáš JS. Verzi Googlebota, která JS umí, neposílá Google na všechny weby, jen na ty důležitější.
David Klouček
Profil
Chamurappi:
Ty už ale používáš JS.
To je vlastně pravda.

si si jistý? Jaká je to akce, která se provádí?
Ukládá to IP a hlavičky člověka, co na to kliknul. Prostě hlas pro danej produkt.

Napadlo mě třeba URL zašifrovat do base64 a rozdělit po znacích do JS pole a po kliknutí to zase spojit, aby se to nedalo dohledat regulárnim výrazem.
CZghost
Profil
Chamurappi:
Jestli umí JS, tak ho to nezmate. Pokud JS nezná, tak neprojde ani přes ten onclick.
Alespoň ho to malinko zpomalí.

K těm virům. Autoři stránek, kteří chtějí šířit nákazu, si je tam nahrajou sami (často používají doplňující antivir, který je proti jejich virům imunní a chrání tak jejich počítač). Něco jsem si (znovu) přečetl, šikovná finta, jak se dostat na server oběti :-) Takhle bych mohl dobře vytrolit kámoše, ale nechci si představit tu reakci. Dlouho jsem používal FileZillu jakožto free FTP klienta do té doby, než jsme provedli reinstall Windows (z XP jsme migrovali na sedmičky). Teď máme právě Total Commander. Jinak mám zásadu: hesla si nikdy neukládám, alespoň tak trénuju paměť, kam se toho ještě dost vejde :-) Kdybych byl nucen si takové heslo uložit, asi bych se nespoléhal na funkci nějakého programu, ale heslo si uložil někam bokem třeba do textového souboru. Je to rozhodně bezpečnější. Mám externí disk, takže tam asi.

Uznávám, že ten webový antivirus je blbost, ale nějak se chránit musí. Kdo má server doma, tomu bude stačit velice dobrý firewall.

Jinak existují i případy, kdy se útočníci pokoušeli dostat na servery velkých firem, které mají servery u sebe a navíc chráněné firewallem, šifrováním dat a velmi dobrým antivirem. A mezi nimi jsou případy, kdy uspěli a mohli tak vesele škodit. Mezi nimi je i Vimeo, Facebook a Twitter. Tam si myslím, že napáchají více škody, než na nějakých malých webech jako je ten můj. To, že na malém webu byl virus, byla jenom "náhoda". Náhodně vytipovaný web a náhodou jsem na něj zavítal zrovna v době nákazy. Virus byl během několika dní odstraněn a stránky vesele prosperovaly. Dneska je tam mrtvo, nic nového, kniha návštěv nefunguje. Autor je opustil, mohl aspoň smazat obsah, aby zbytečně nezabíraly místo v paměti serveru. Byly na adrese quakegamers.ic.cz, ale jestli tam ještě jsou, nevím. Já nemám chuť se o ně starat (mít na krku dva weby, tak to je pro mě moc), jestli se někdo věnuje hře Quake III Arena, může se podívat po kontaktu, ale nezaručuju, že vám odpoví. Neberte to jako inzerci, nechci dělat reklamu, ale je to škoda to nechat jen tak chátrat. Ty stránky je potřeba znovu rozhejbat, i kdybych se tam měl nabourat a FTP údaje dát někomu tady.
Chamurappi
Profil
Reaguji na Davida Kloučka:
Aha, takže je to hlasování. Jestli někdo má motivaci ho zmanipulovat, tak ho podobnými lacinými triky nezastavíš.
Náhodně kolemjdoucí robot onclicky spouštět nebude.


Reaguji na CZghosta:
K těm virům.
Nesouvisí s klikajícími roboty.
David Klouček
Profil
Ne, Googlebot prostě JS spouští a kliká na ten button, takže mi nezbyde nic jinýho, než ho ignorovat.
joe
Profil
Google indexuje URL adresy, které se vyskytují i v onclick atributech, a docela dlouho.

Pokud definuješ, co se má stát na kliknutí až v externím souboru, pak se Google bot indexaci vyhne.
rafej
Profil
Mě takto proklikávají odkazy/tlačítka se skripty i jiní roboti. Evidentně už skripty umí interpretovat.

Pokud je filtrování robota opravdu důležité, tak jedině kontrolovat user agent, ip adresu a rychlost procházení stránky.
Problém je, že ani jedno nemusí stačit. User agent se dá podvrhnout, ip adresa změnit a rychlost procházení již někteří roboti úmyslně zpomalili, takže dokáží věrohodně napodobit uživatele.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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