Bir blogunuz varsa ve/veya içerik üreten herhangi bir siteye sahipseniz bu siteniz büyük ihtimalle örümcekler (bot) tarafından ziyaret ediliyordur. Özellikle arama motorları sayfalarınız indekslemek için bu yöntemi kullanıyorlar. Örnek olarak Google’ın örümceÄŸi Googlebot periyodik olarak sitenizi ziyaret ediyordur. Bu aslında iyi bir ÅŸey. Bu örümceklere yardımcı olmak amacı ile de robots.txt adlı bir dosya kullanılır. Bu dosya kısaca hangi örümceklerin sitede nerelere girmeye ve neleri okumaya veya indekslemeye izinleri olduÄŸunu belirtir. Genelde örümcekler bu sınırlamalara saygı gösterirler. Bütün büyük arama motorlarının örümcekleride bunlara dahil. (Sonradan öğrendim ki MSN hariç. Büyük süpriz!)
Fakat bir örümcek yazmanın çok da zor olmadığı bu zamanlarda etrafta bir sürü kötü huylu örümcek de dolaşıyor. Sitenize gelen bu kötü huylu örümceklerin nedeni büyük ihtimalle ya spam yorumlar ya da içeriÄŸinizi çalmaktır. Ve tahmin edersiniz ki bu kötü örümcekler robots.txt dosyanızı pek takmazlar. Bu benim de başıma geldi hem suaygiri.com’da hem de kiÅŸisel sitemde yayınladığım içerikler baÅŸka yerlerde ortaya çıkıyordu. İlk önce bunun bir kopyala yapıştır sorunu olduÄŸunu düşündüm. Olabilir de. Ama bazı siteler o kadar fazla çalıntı içeriÄŸe sahip ki bunun sadece kopyala - yapıştır ile olması çok zor gibi gözüküyor. Daha sonra Internet’te content scraping (içerik kazımak) ilgili bir yazı ile karşılaÅŸtım. O zaman dank etti.
Ufak bir betik ile bu örümcekleri yakalayıp IP veya “user-agent” sınırlaması ile uzak tutmak mümkün olabilir. Burada bir örneÄŸi mevcut.
Örnekteki betiÄŸin adı “orumcek.php”.
<?php
/*
Yazar: Sinan Taga
16/01/2008
www.suaygiri.com
*/
$logfile = "orumcek.log";
$line = date('d-m-Y|H:i')
."|".$_SERVER['HTTP_USER_AGENT']
.”|”.$_SERVER['REMOTE_ADDR']
.”\n”;
// Verileri kaydet
$logFile = fopen($logfile, "a");
fwrite($logFile, $line);
fclose($logFile);
?>
Bu betiÄŸin yaptığı ÅŸey aslında basit. her seferinde bu sayfa server tarafından sunulduÄŸunda belirtilen bir tekst dosyasına (örnekte orumcek_kayit.log) o sayfanın istendiÄŸi tarihi, sayfayı isteyen user-agent’i ve isteÄŸi gönderen IP’yi kaydediyor. Her yeni satır yeni bir kaydı ifade ediyor. Veriler ise “|” (boru veya pipe) karakteri ile ayrılıyor.
Daha sonra robots.txt dosyamıza bu betiği ve kayit dosyasınıörümceklerin erişmemesini söylemek amacı ile ekliyoruz. Örneğin:
User-agent: *
Disallow: /orumcek.php
Disallow: /orumcek.log
Robots.txt’deki bu satırlar hiç bir örümceÄŸin kök dizinindeki bu iki dosyaya bakmamasını söylüyor.
Son olarak da ana sayfammıza görünmez bir link ekliyoruz. Normal botların, Googlebot gibi, bu bağlantıyı izlemesi gerekir.
<a href="/orumcek.php" rel="nofollow" style="display: none">
Artık tuzak hazır eğer bu adımlar sonunda birisi sayfayı görüntülemiş ise bu büyük ihtimal ile kötü niyetli bir örümcektir. Arada sırada kayıt dosyanızı kontrol ederek bu tarz kötü örümcekler tarafından ziyaret edilip edilmediğinizi görebilirsiniz ve bunun için gerekli önlemler alabilirsiniz.
Tabii tuzak dosyanızı başkalarına söylemeyin ki bu sayfa onlar tarafından görüntülenmesin, yoksa neyin bir örümcek olduğunu anlamak zor olabilir.
Bilifğim kadarı ile sunucunun kendi kayıt dosyaları da buna benzer bilgileri kaydediyor ama sunucu dosyaları daha biraz daha karışıklar.
Buradaki betiği GNU lisansına göre istediğiniz şeklinde kullanabilirsiniz. Eğer işinize yaradıysa veya yaramadıysa ya da daha iyi bir çözümünüz varsa bizimle paylaşın yeter.
Web robotları ile daha fazla bilgiyi http://www.robotstxt.org/ adlı siteden alabilirsiniz.
Deniyecem bunu
yararlı bir yazı olmuş.Eline sağlık.