• 11-04-2014, 13:25:20
    #1
    Php ile robotları engelleme nasıl yapılabilir arkadaşlar?

    Verilerimizi çalan robotları siteye sokmamaktan bahsediyorum.
    file get contents ile veya curl ile yapılan botları baska bir sayfaya yönlendirmek...


    Facebook ta gördüm bugüne kadar sadece bot ile veri çekilemiyor.
    Bilgisi olan yardımcı olabilirmi?
  • 11-04-2014, 13:52:18
    #2
    if(empty($_SERVER['HTTP_USER_AGENT'])){exit;}
    file_get ve user_agent belirtilmemiş curl bağlantılarını engeller. Gerisini normal engellemeniz pek mümkün değil, Sonuçta google botlarını vs. engelleme imkanınız da var. Tabi deneme - yanılma ile çözümler üretilebilir.
  • 11-04-2014, 14:41:13
    #3
    Verileri gösterirken normal ama kaynak kodunda karistirabilirsiniz. Verileri almalari gene imkansiz degil ama islerini baya bir zorlastirirsiniz. Mesela https://hidemyass.com/proxy/ bu url deki proxy adreslerini direk bot ile alamiyorsunuz. Aldiginiz vakitte kaynak kodda display:none olmus cok fazla karekter görüyorsunuz.
    En azindan bu dedigim sekilde zorlastirilabilir.
  • 11-04-2014, 14:53:38
    #4
    Anladım fakat bu seferde google,yandex,bing botlarına engel olmayalım

    Facebook bu işi nasıl yapıyor acaba çok araştırdım fakat birşey bulamadım o tam aradığımız şey aslında hepimizin...
  • 11-04-2014, 16:39:54
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @izmirwebcenter; gelen tüm "User-Agent" bilgilerini bir havuzda toplayıp buna göre engelleme yapabilirsiniz. Bunu yapmanızı sağlayacak PHP kütüphanelerini packagist.org'da bulabilirsiniz.
  • 11-04-2014, 18:44:50
    #6
    file get contents le gelen isteklerde user agent olmayacagi icin user agent kontrolu yaparak engellenebilir. Ama curl oyle degil. Referer user agent ve diger gerekli header bilgileri custom olarak gonderilebildigi icin normal bir ziyaretciden ayirt edilemez ve curl u %100 engellemenin bir yolu yok maalesef. Diğer arkadaslarinda.dediği gibi içerik zorlastirilabilir. Benim bu anlamda gördüğüm en güzel ornek su şekilde calisiyordu. Site içindeki gosterilecek verileri JavaScript de diziye atiyor ve yine JavaScript te döngü ile sitede ilgili yerlere yaziyor. Ama JavaScript dizideki değerlerin siralamasi sürekli değişiyor ve ona gore döngü turetiyordu. Bu yöntem bile %100 engellemez ama bot yazmayi zorlastirir.

    Discovery cihazımdan Tapatalk kullanılarak gönderildi
  • 11-04-2014, 21:12:45
    #7
    Dinamik css ve divlerini oluştur çalamazlar
    random komutuyla herseferinden kodların rastgele isim alsın div vs class name ler. tabi bunun için css dosyanıda php ye dök ordada aynı şekilde yaparsan genel kullanıcı etkilenmez
  • 11-04-2014, 21:26:03
    #8
    ne olursa olsun kaynağa düşen sistemlerde bağlantıları %100 engelleyemezsiniz. Ha zorlaştırılırmı zorlaştırılır ama hiç bir zaman %100 performans elde edemezsiniz.
  • 11-04-2014, 21:55:32
    #9
    Misafir
    Bi umut, saniyede gezilen sayfa sayısından ayıkılabilir. Akabinde ip ban ile çözümlenebilir.

    Ama div'lerin id'siyle yada class'larıyla oynayarak çözülmez. Adam preg_match yerine explode ile yine alır alacağı veriyi.
    • saintx
    saintx bunu beğendi.
    1 kişi bunu beğendi.