1. 2
    Soru soruldu Programlama PHP 5 ay önce

    PHP ile cURL istekleri engellenebilir mi?

    Ertunç Tarcan
    Front-end Developer / Freelancer

Bol miktarda makale içeren bir web sitesi yayına alacağız. Bildiğiniz gibi makaleleri botla çekip biraz değiştirerek kendi sitelerinde yayınlayan emek düşmanlaır var.

cURL ya da benzeri metotları engellemenin bilinen en etkili yolu nedir?

1 yanıt
  1. 0
    Sancar Acunal
    ~ · 5 ay önce

    Evet çoğu engellenebilir. Çoğu diyorum çünkü bilen birisi tarafından bypass edilebilir fakat piyasadaki çoğu botu ve kullanan kişiyi engelleyecektir.

    Yöntemin özü şu: normalde yaptığımız web sayfası istekleriyle cURL'ün yaptığı istekler arasında bazı küçük farklılıklar bulunuyor. Bu farklılıklar sayesinde cURL isteğini tespit edip engelleme imkanına sahibiz.

    Şu şekilde isteğin gerçek bir kişi tarafından yapılıp yapılmadığını denetleyebilirsiniz:

    if (!isset($_SERVER['HTTP_COOKIE'])) {          
        die('Dur yolcu!');
    }

    Bunu test etmek için aşağıdaki adımları izleyin:

    1. $_SERVER bilgilerini bir değişkene aktarın ($veri = $_SERVER;)
    2. Bu değişkeni json_encode'layın ($veri = json_encode($veri);)
    3. Veritabanında iki sütunluk (id, veri) bir tablo oluşturun
    4. Siteye girin (ve verileri veritabanına kaydedin)
    5. Siteye cURL isteği yapın (ve verileri veritabanına kaydedin)
    6. Daha sonra veritabanı kayıtlarından iki isteği karşılaştırın

    Karşılaştırma sonunda cURL isteğinde HTTP_COOKIE bilgisinin olmadığını göreceksiniz. İşte bu sayede verdiğim kod botları engelliyor.

    Önemli not: Bu yöntemin bazı durumlarda gerçek kullanıcıları bot sanma ihtimali olabilir. Bunun sebebi HTTP_COOKIE değerinin tarayıcılar tarafından oluşturuluyor olması. Eğer bazı tarayıcılar bu değeri oluşturmuyorsa veya cookie desteği kapalıysa script bu isteği de bot zannedebilir.