PHP Dersleri

PHP ile 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. Ş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.

Nasıl Buldunuz?

Komik
0
Uyyy
0
Sevdiim
0
Düşündürücü
0
Çalak
1

Leave a reply

E-posta hesabınız yayımlanmayacak.

More in:PHP Dersleri