A robots.txt tartalma magánügy

Jó pár órányi munkát követően összeállt egy újabb védelmi rendszer, amely lehetővé teszi a robots.txt fájl elrejtését a kiváncsiskodók elől és csak az fogja látja akinek az dedikálva lett.

Kár, hogy nem látom az arcod. Ha egymással szemben ülnénk lehet megkérdeznéd, hogy az egésznek mi értelme van?
A válaszom a következő: a robotok korlátozása csak rám és a rájuk tartozik. Úgy gondolom, hogy a benne rejlő tartalom ismerete harmadik fél által veszélyeztetheti a szkriptem épségét.

Hogyan kezdjünk bele? Akkor talán legjobb, ha vezetlek..

1. Első lépésként nyisd meg a .htaccess fájlodat, (ha nincsen, akkor készíts egyet) és tedd bele az alábbi kódot:
A domainedet ne felejetsd el behelyettesíteni!

RewriteEngine On
RewriteCond %{http_user_agent} !(googlebot|Msnbot|Slurp) [NC]
RewriteRule ^robots\.txt$ http://seo.i-connector.com/ [R,NE,L]
AddHandler application/x-httpd-php .txt

Az első sort nem magyarázom. A második és a negyedik sor lehetővé teszik, hogy ha a user agent string részleteiben nem tartalmazza a googlebot, msnbot, vagy slurp szavakat, a látogató a kódban specifikált fődomainen fog landolni, persze csak akkor, ha a robots.txt-mre volt kíváncsi. Népszerű gyakorlat, hogy egyedi 404-es hibaoldal helyett a nem található tartalom URL-jét a domainre irányítják, így hát ez nem fog gyanút kelteni senkiben. Úgy fog tűnni, hogy egyszerűen nincs robots.txt fájl a szerveren, pedig van.. Ja igen, a negyedik sor pedig php szerű viselkedést fog intézni a txt kiterjesztésű fájloknak.

2. Nyiss egy jegyzettömböt, vagy a kedvenc webszerkeztő programodban egy új lapot és illeszd be az alábbi kódot.

<?php
$ua = $_SERVER[‘HTTP_USER_AGENT’];
if(strstr($ua, ‘msnbot’) || stristr($ua, ‘Googlebot’) || stristr($ua, ‘Yahoo! Slurp’)){
$ip = $_SERVER[‘REMOTE_ADDR’];
$hostname = gethostbyaddr($ip);
if(!preg_match(“/\.googlebot\.com$/”, $hostname) &&!preg_match(“/search\.live\.com$/”, $hostname) &&!preg_match(“/crawl\.yahoo\.net$/”, $hostname)) {
$block = TRUE;
$URL=”/”;
header (“Location: $URL”);
exit;
} else {
$real_ip = gethostbyname($hostname);
if($ip!= $real_ip){
$block = TRUE;
$URL=”/”;
header (“Location: $URL”);
exit;
} else {
$block = FALSE;
}
}
}
?>

Ments el reversedns.php néven és töltsd fel a szervered gyökérkönyvtárába.

A szkript maga ismerős lehet neked, mivel a reversedns.php picit átalakított verzójáról van szó. A módosításnak megfelelően, ha a robot validálás során egy látogató megbukik akkor a fődomainen fog landolni pillanatokon belül. Ha a robot nem a három nagy bot egyike, akkor esélye sincs átjutni. Hiába állítod át a user agentedet botnak álcázva a kezdőlapon fogsz landolni a php által vezérelve, így aztán teljesen elhárítottam minden, a cloackingot leleplezni vágyó kísérletet.

Úgy gondolom, hogy mivel a google nem véd meg semmitől, így aztán az ilyen típusú önvédelem azért nem köszön a klasszikus black hat technikának…

3. Nyisd meg a védendő robots.txt fájlodat és illesz be az alábbi kódot a legelejére

<?php include(“reversedns.php”); ?>

A hack kész a védelem felállt!

További kellemes napot!

20 thoughts on “A robots.txt tartalma magánügy

  1. none

    Szia Zoli!

    A SEO fórumon említetted, hogy tovább fejleszted a robots.txt “védelmet”. Jutottál azóta valamire?

    Köszi!!!

  2. Bagi Zoltán Post author

    Karácsonyi kavalkád mellett elkezdtem építeni egy integrált védelmi rendszert. Szétnéztem spammervölgyben és körvonalazódott a google bowling egy két alága, amit szintén be szeretnék építeni a védelembe.
    Az egyik nagy problémám azon túlmenően, hogy a validált robotok referrerjét nem tudom logolni. A dolog mögött az a jelenség húzodik meg, hogy $_SERVER[“HTTP_REFERER”] értéke 0, csak az oldon belüli cikázás esetét ad értéket, így alternatív megolást kell keresnem, illetve a logolást újratesztelnem.

    Ha jól rémlik te a bad botok ellen szeretnél valami automata szkriptet. Félkész megoldásom van a problémára, de még nem automata. A tartalom lopó robotokat viszont az emberi beavatkozást igényló szkript arzenál automata moduljaként szeretném majd reprezentálni, de ha gondolod, miután azzal megvagyok publikálom.

    Hát itt tartok kábé:)

  3. none

    Természetesen nem sürgetni akartalak, csak érdeklődtem. Biztosan super lesz ez is. Ezekkel a dolgokkal elképesztő előnyökhöz lehet jutni a véleményem szerint. Ezek zseniális fejlesztések! Tényleg csak meghajolni tudok előtted!

    Van még egy ötletem, de az már nem ezzel kapcsolatos, és nem is éppen tisztességes, dehát ez van. Muszáj leleményesnek lenni. 🙂

    Minden esetre türelemmel várom a fejlesztés eredményét.

    Köszi!!

  4. G

    Hello!

    Az alábbi feltételnél nem sima strstr függvényt kéne használni?
    if(stristr($ua, ‘msnbot’) || stristr($ua, ‘googlebot’) || stristr($ua, ‘yahoo! slurp’))

    Ha jól tudom a robotok nagybetűt is használnak a user agent-ben, viszont az srtistr case sensitive.

    üdv.
    G

  5. Bagi Zoltán Post author

    G!
    Köszönöm az észrevételt. Teljesen igazad van, a kódot egy percen belül javítom. Sajnos azonban a sima strstr valamiért nem képes a “Yahoo! Slurp”-öt felismerni, így ott marad a régi és a korrekt némi, hogy a case sensitivitás hiánya ne okozzon galibát.

  6. Attila

    Köszönet a kódért Zoltán. Mi történik például, ha egy álcázott google bot érkezik, ami a feketekalapos cloaking-ot hivatott leleplezni?

  7. Bagi Zoltán Post author

    Szia Attila!
    Ha az álcázott robot nem igazolhatóan googlebot, akkor ugyanabban lesz része, mint a kíváncsiskodóknak, azaz átirányítás a kezdőlapra.

  8. Attila

    Igen ezt értem. A kérdésem inkább az esetleges negatív következményekre vonatkozott.

    Gondolom az álcázott robotok átirányítása egy alkalomankénti robot.txt 404-re vezet, ami nem jár semmiféle büntetéssel.

    Mindenesetre a robot.txt elrejtése a sunyi linkcserélő stratégiák netovábbja, és lehetővé teszi az automatikus lincserét magán féltett pénzoldalon – vagy mittudomén hogy nevezik ezt a magyar SEO-k (biztosan tudod mire gondolok).

    Akárhogy is, köszi a kódot!

  9. Bagi Zoltán Post author

    Az álcázott robot.txt 301-es átirányításra vezet. Mivel a második bekezdésedben taglalt dolog nem az én ingem, így nem veszem magamra.

  10. Tóth András Zoltán

    Köszi!

    Most fejlesztek egy web oldalt, és pont erre gondoltam én is.
    Hogyan lehetne a látogatók elől elrejteni az admin elérési útvonalát, amit nem szeretnék beindexeltetni a google-val.

    Köszönöm, mégegyszer.

  11. Bagi Zoltán Post author

    Azt csak úgy lehet, ha őket is kizárod, de mivel nekik engedni akarod a fájlok láthatóságát ez nem fog menni. Xml fájloknak más a struktúrája, mint a html oldalaknak, ahova meta tagokat írhatsz.

  12. Buzogány László

    Hát nekem ez azért veszélyesnek tűnik. Sose lehetsz biztos benne, hogy jóindulatú robotokat nem küldessz-e el ezzel.

  13. Bagi Zoltán Post author

    Pedig nem veszélyes. Legrosszabb esetben kiosztasz pár 403-at a googlenek, de ezt jelzi a GWT. Én nem észleltem teszteléskor.

  14. Pingback: Bad robotok, lopjatok máshol | Google keresőoptimalizálás

  15. Pingback: Robots.txt « MaXX WP blogja

Comments are closed.