2008
01.17

Internet ÖrümcekleriBir 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.

6 comments so far

Add Your Comment
  1. Örümcekleri yakalamak…

    İçerikleriniz çalınıyor veya spam’e maruz kalıyorsanız. Siteniz kötü niyetli örümceklerin (bots) istilasında olabilir. Üç kısa adımda bunu öğrenebilirsiniz….

  2. Örümcekleri yakalamak…

    İçerikleriniz çalınıyor veya spam’e maruz kalıyorsanız. Siteniz kötü niyetli örümceklerin (bots) istilasında olabilir. Üç kısa adımda bunu öğrenebilirsiniz….

  3. Deniyecem bunu

  4. yararlı bir yazı olmuş.Eline sağlık.

  5. [...] önceki bir yazımızda blog kazıyıcılardan bahsetmiştik. Bu kişiler bir bot yardımı ile (veya diğer hack [...]

  6. teşekkürler