Botların Siteden Veri Çekmesini Engelleme

Siteniz için o kadar araştırma yapıp toplamış olduğunuz bilgileri kendi üslubunuzla yazmanız yani özgün olmanız bir yana yeni haberleri alıp sitenizde birkaç oynama dahi olsun sitenizde paylaşmanız bile bir emek işidir. Her nasıl olursa olsun emek harcanan bir sitenin başına gelebilecek en kötü durumlardan birisi de sitenize bot yapılarak verilerin hızlı bir şekilde kısa sürede sayfa ziyareti olmaksızın (ç)alınmasıdır.

Sitenizin botlar tarafından sıklıkla ziyaret edilmesini istemiyorsanız bir takım korumaları aktif etmeniz gerekmektedir. Peki, tam olarak bu botlardan kurtulma şansımız var mıdır? - Maalesef ki yoktur! Şimdi bu yazımda birkaç güvenlik olaylarını sitemize ekleyeceğiz ve acemi botçulardan kurtulmuş olacağız.

Bot yapan kişiler genelde botların karmaşık yapısı olduğunu düşünerek kodlamalarını file_get_contents ile yapmaktadır. File_get_contents yapı itibariyle tek satırlık işlem olduğundan kullanımı ve kodlaması kolaydır. Bundan dolayı birçok botlar bununla kodlanmaktadır. Buda sitemizi korunaklı hale getirmemizi sağlıyor.

Bot işlerinden anlayan ve cURL bilgisi olanlar ise kodlamalarını file_get_contents ile yapmazlar. Çünkü cURL sanki bir insanmış gibi davranır ve fark edilmesi oldukça zordur. Böylece her türlü sitenizden bilgi almış olur. cURL ile yapılan botlarsan sitemizi korumak biraz daha zordur.

İlk olarak botlarını cURL ile yapmayan ya da cURL ile yayıp da tarayıcı özelliğini koymayanlar için nasıl güvenlik tedbiri alınır bunu görelim.

Kişilerin sitemize tarayıcıdan geldiğini anlamak için $_SERVER["HTTP_USER_AGENT"] özelliğini kullanırız. Gelen botlarda bu tarayıcı bilgisini getirmediği için o zaman kontrollerimizi de bunun üzerinden gerçekleştireceğiz.

Şimdi her sitenin bir ayar.php gibi sayfası yada her sayfaya include olan bir sayfası vardır. Şimdi bunu açarak <?php tagından sonra yani en üst satıra aşağıdaki kodu girmemiz gerekmektedir.

 if($_SERVER["HTTP_USER_AGENT"] == ""){die("Yok Ya!");}

Yukarıdaki gibi yaptığımızda bot tarayıcıdan gelmediği için bütün sayfalarda Yok Ya! Yazacaktır ve böylece bot sitemizden hiçbir şey alamadan eli boş dönecektir.

Gel gelelim sitemize gelen bot cURL ile yapılmış ve tarayıcı bilgilerini içinde barındırıyor hatta bütün parametreleri hazırlamış ve sitemizden bir şeyler almayı kafasına takmışsa o zaman ne yapacağız?

Bununla ilgili kesin çözüm aslında yok. Bu tarz lanet botlarken kurtulmak için gelen botun hangi siteden olduğunu anlamanız gerekmektedir. Gelen botun hangi siteden geldiğini anladıktan sonra ister .htaccess yardımı ile isterseniz de yukarı da ki örnekteki gibi işlem yapabilirsiniz. Sitenin adını bulunda tek yapmanız gereken ip adresini bulmak ve bulduktan sonra aşağıdaki kodu yazmak.

 if($_SERVER["HTTP_USER_AGENT"] == "1921.168.99.98"){die("Yok Ya!");}

Yukarıda ki gibi bir engelleme yapabilirsiniz. Ama bütün parametreleri girmiş ise o zaman Proxy işlemini de es geçmemiştir ve bu işlemde elimizde patlayacaktır.

Sitenin adını bulamadınız ve bot sitenize tam teşekküllü bir şekilde gelip bir şeyler almaya mı başladı o zaman bırakın bot işini yapsın. Bu kadar şeyi düşünüp sizin sitenizden bir şeyler almaya geliyorsa şanslı olmalısınız :D Şaka bir yana böylesi durumda google'a spam bildiriminde bulunarak sizin yazmış olduğunuz yazıyı aynen aldığı için o site sizin kadar başarılı olmayacaktır. Tabi Google takarsa.

Botları siteden nasıl uzaklaştırırız derken de aslında en iyi bot nasıl yapılır sorusuna cevap vermişte olduk. Umarım bu yazıyı kâle alıp bot hazırlamazlar o zaman işiniz daha da kötüye biner :)
- 07.08.2013 / 04:52:57 2

Sosyal Medya Paylaşım Alanı

Bunlarda İlginizi Çekebilir

3:33 Javascript
15:21 Php Dersleri

Php ile Mysqlde Veri Güncelleme İşlemi

Kategori: Php Dersleri | 03.05.2013
Css Dersleri

Css ile Radio Butonlarını Şekillendirme

Kategori: Css Dersleri | 24.08.2013
3:26 Php Dersleri

PDO ile MySQL Veri Silme İşlemi | Delete

Kategori: Php Dersleri | 07.06.2014
4:10 Php Dersleri

Substr_count ile Harfleri Saydırma İşlemi

Kategori: Php Dersleri | 03.05.2013

Yorum Listesi (4) # YorumYap

  • Ufuk Bağcı (07.08.2013 - 15:27:12)
    Yaptığım tüm botlara , Google Bot Agent'i gönderdiğim için bu kural biraz geçersiz olur. Eğer Siten google'da indexlenmesini istemiyorsan google bot User-agentini yasaklayabilirsin bu da senin için PR Kaybı olabilir. O yüzden Yapacağın şey şu olmalı, Botlar bir girişte ar arda , Linklere tıklar bu yüzden bunları engelleyebilir bunun için bir yöntem geçirebilirsin. Zaten hiç kimse bot yazarken basite indirgemez. Mesela Gelen Request'leri izleyebilirsen eğer , O kişinin ip adresini felan alabilirsen ve o ip nin saniyede kaç sayfaya eriştiğini hesaplayabilirsen ve her bir kişiyi 1 sayfayı 3,5 saniyede okuyamacağını sisteme öğretebilirsen o zaman botları engellemiş olabilirsin. Bu da benim bir mantığım. İbrahim Hocam Umarım sizleri kırmamışımdır. Güvenlik hastalığı işte kusura bakmayınız :)
  • ibrahim Çevrük (07.08.2013 - 16:32:22)
    Zaten cURL de bütün parametreleri kullanmış ise den kastım Agent yollamasıydı. Tam teşekküllü bir botta olması gereken koddur da ayriyeten. Bana yollanan bir çok yardım mesajlarında file_get_contents kullandıklarını gördüm. Bot yapanlar senin benim yada sıkı bot yapanlar gibi curl kullanmıyorlar yani hala eski yöntemleri kullanan kişi sayısı oldukça çok. Ayriyeten kızacakta bir şey göremedim de.
  • Şafak SARAÇOĞLU (08.08.2013 - 15:51:28)
    Çok sıkı bot yazarım üstadım bunların hiçbiri işe yaramaz önce file_get_content veri boş dönüyorsa curl :)
  • ibrahim Çevrük (09.08.2013 - 10:58:07)
    Yoklukta gideri olan bir kod zaten buda :) En azından ben elimden geleni yaptım demek için bire bir :D Başka bir şey ifade etmiyor zaten.

Hadi Sende Yorum Yap!

Yorum Gönderilmiştir. Onaylandıktan Sonra Mesajınız Yayınlanacaktır.