Bir web sitesi veritabanı 'veri kazıma' kaçınmak için üst teknikleri

15 Cevap php

Ben aslında varolan bir veritabanına sadece bir web front-end olduğunu PHP ve MySQL kullanarak bir site kuruyorum. Anlaşılır müvekkilim aynı zamanda henüz veritabanındaki verilerin bir kopyasını yapmak mümkün olmaktan kimse önlemek için çok hevesli her şey kamuya istiyor ve hatta bir "Tümünü görüntüle" bağlantısını db her kaydı görüntülemek için.

Böyle bir SQL enjeksiyon saldırıları gibi saldırıları önlemek için her şeyi koyduk ederken, html gibi tüm kayıtları görüntüleme ve geri başka bir veritabanına bu verileri ayrıştırmak için komut çeşit çalışıyor kimse önlemek için hiçbir şey yoktur. Ben kaldırmak oldu bile "view all" bağlantısını, birisi hala, teoride, tek her kaydın biri geçmesi ve aslında tüm bilgileri kısma, yeni bir veritabanına bu derlemek için otomatikleştirilmiş bir işlemi kullanabilirsiniz.

Kimse onlar payı olabilir bu önlenmesi veya hatta sadece dettering için herhangi bir iyi taktik var mı.

Teşekkürler

15 Cevap

Veri yayınlanan, bu görünür ve internette herkesin erişebileceği. Bu onu ve değil mi insanları görmek istediğiniz kişileri kapsamaktadır.

Sen her ikisine de sahip olamaz. Veri yalnızca bir hesapla görünür olabilir ve insanlar verileri slurp hesaplarını yapacak şekilde bunu yapabilirsiniz. Veriler yalnızca onaylanmış IP adreslerinden görülebilir ve insanlar bunu Slurping önce onayını kazanmak için adımlar geçmesi böylece bunu yapabilirsiniz.

Evet, zor almak için yapabilirsiniz, ama isterseniz siz de kötü niyetli olanlar için rahat olun gereken tipik kullanıcılar için uygun olması.

Kamuya açık içerik kazıma kararlı bir kişiyi durdurmak için hiçbir şey olsa da, müşterinin endişelerini hafifletmek için birkaç temel şey yapabilirsiniz:

  • Vb kullanıcı hesabı, IP adresi, kullanıcı aracısı tarafından hız limiti .. - bu, belirli bir kullanıcı grubu belli bir süre içinde indirebilirsiniz veri miktarını kısıtlamak anlamına gelir. Eğer aktarılan veri büyük miktarda tespit ederseniz, hesap veya IP adresini kapattı.

  • JavaScript gerektir - müşteri yerine bir iskelet örümcek daha interaktif bir tarayıcı bazı benzerlikler, sahip olmak için ...

  • RIA - Rich Internet Application arayüzü üzerinden veri mevcut. JavaScript tabanlı ızgaraları Zengin ortamlarda 1kevgriff mentions olarak Flash ve Silverlight dahil vb Extjs, YUI, Dojo, içerir.

  • Görüntü olarak verileri kodlamak. Bu normal kullanıcılar için oldukça müdahaleci olduğunu, ancak çoğu metin ayrıştırıcılarını yenilgi olacaktır metin yerine resim, gibi veri tabloları veya bazı değerlerin kodlamak olabilir, ama elbette kusursuz değildir.

  • robots.txt - robot kullanıcı ajanları bilinen bariz web örümcekler, inkar etmek.

    User-agent: *

    Disallow: /

  • Robot metatag kullanın. Bu örümcekler uygun durdurmak olacaktır. Bu örnek için teşekkür dizine Google önlemek olacaktır:

Orada caydırıcılık farklı düzeylerde ve ilk seçenek muhtemelen en az müdahaleci.

Hiçbiri ideal olmasına rağmen bunu birkaç yolu vardır.

  1. HTML yerine bir görüntü olarak verileri sunmak. Bu sunucu tarafında fazladan işlem gerektirir, ancak PHP grafik kütüphanesini zor olmaz. Alternatif olarak, sadece belirli bir boyutu (yani tüm) üzerinden istekleri için bu yapabilirdi.

  2. Bir sayfa kabuk yükleyin, daha sonra bir AJAX çağrısı üzerinden veri almak ve DOM takın. Doğrulama gibi AJAX çağrısı ile geri geçirilmesi gereken bir karma ayarlamak için oturumları kullanın. Hash sadece zaman (yani 10 saniye) belirli bir süre için geçerli olacaktır. Bu gerçekten sadece fazladan bir adım birisi verileri almak için üzerinden atlamak zorunda olurdu, ama basit sayfa kazıma önleyecek ekliyor.

Lütfen Önyüzde için Flash veya Silverlight kullanarak deneyin.

Gerçekten belirlenir eğer bu kimse durduramaz iken, daha zor olurdu. Eğer hizmetler aracılığıyla veri yükleme ediyorsanız, her zaman aracı kazıma önlemek için güvenli bir bağlantı kullanabilirsiniz.

Yapabileceğin bir şey gerçekten var. Sitenizde geçiyor otomatik bir süreç aramak için deneyebilirsiniz, ancak sonunda kazanacak.

Temel kural: Eğer kendinize bir şey tutmak istiyorsanız, Internet uzak tutmak.

recaptcha her benzersiz IP için her 10 sayfa yükler zorlamak

Bu caydırmak ediyorum neden bilmiyorum. Müşteri verilerini teklif ediyor.

Muhtemelen onlar trivially veri yansıması değil bazı benzersiz şekilde değer yaratmak.

Neyse.

Bunu muhtemelen otomatik kazıyıcı çeşit olmadığını görmek için tarayıcı, ekran çözünürlüğü ve IP adresini kontrol edebilirsiniz.

CURL ve wget gibi birçok şey - dikkatlice yapılandırılmış sürece - çok açık tarayıcılar değildir.

Flash uygulaması ön uç - - Adobe Flex gibi bir şey kullanarak bu düzeltmek istiyorum.

Eğer kullanıcıların erişmek için kolay olmasını istiyorsanız bunun dışında, kullanıcıların kopyalamak için kolay.

Bunun için kolay bir çözüm yoktur. Veri halka mevcut ise, o zaman kazınmış edilebilir. Yapabileceğiniz tek şey düzeni etkilemeden HTML değiştirerek / ekleyerek her girişi biraz benzersiz yaparak kazıyıcı için hayatı daha zor hale getirmek. Bu muhtemelen daha zor birisi düzenli ifadeler kullanarak veri hasat için yapmak istiyorum ama yine de gerçek bir çözüm değil ve ben herkes yeterince onunla başa çıkmak için bir yol bulur tespit söyleyebilirim.

Ben bu ulaşılmaz bir görev olduğunu müşteri söylüyorum ve işinizin önemli parçaları ile getting öneririz.

Uzak klavyeden ellerini alın ve neden why o verileri görünür olmak istiyor ama mümkün değil kazınarak için müşteri sormak?

O iki uyuşmayan şeyler soran ve belki onun akıl gibi bir tartışma geçiriyor bazı meyve verecektir.

O gerçekten kamuya açık istemiyor olabilir ve kimlik doğrulama / yetkilendirme eklemeniz gerekir. Ya da değer aslında bir API açılması var olduğuna karar verebilir. Size sormak kadar Ama bilemezsiniz.

Bir sıyrık tespit edilirse ne bülten Forumun trol koruması benzer bir şey oluşturma hakkında ... (belki bir IP veya bir site haritası tarama gibi görünen bir yönlendirilmiş gezinme dakikada girişler belli bir miktar), daha sonra sunmak başlayabilirsiniz telefon sayısının basamak bir çift değiştirme veya isim alanlarına saçma isimleri ekleyerek gibi çöp veriler.

Google IP'leri için bu kapatın!

Normalde bir sunucuya yüzlerce, binlerce (ve daha fazla) isteklerini yapmak zorundadır iyi bir miktar ekranda-kazıyın. Bunu ilgili taşması soru okumanızı öneririz:

How do you stop scripters from slamming your website hundreds of times a second?

Kazıyıcılar kazıma davranışlarını tespit etmek için hızlı bir şekilde birçok sayfalarını yüklemek için eğiliminde olduğu gerçeğini kullanın. X saniye boyunca her n sayfa yükler için bir CAPTCHA görüntülemek ve / veya sayfaların onlarca her dakika yüklenen ediliyor derken oldukça uzun olur her sayfa yük için bir katlanarak büyüyen bir gecikme bulunmaktadır.

Bu şekilde, normal kullanıcıların CAPTCHA görmek muhtemelen asla ama Kazıma hızla CAPTCHA'ları çözmek için onları zorlar sınırı vuracaktır.

Benim önerim Birisi web kazımak yoksa en azından yasal müracaat var bu yüzden bu zaten yasadışı olduğunu olurdu. Yani belki yapılacak en iyi şey, sadece orijinal sitesine bir bağlantı eklemek ve insanlar kazınması izin istiyorum. Daha bunlar bağlantıların daha kazımak yukarı pagerank daha fazla internet binanın çevresinde görünecektir.

Genellikle kazımak İnsanlar orijinal yazar ile uyum bir tür oluşturur beri orijinal siteye bir link içeren karşı değildir.

Yani benim tavsiyem bu aslında web sağlığı için olası en iyi şey olabilir mi patron sormaktır.