2012-03-25 23 views
5

ASP.NET MVC 3 web sayfamda (burada teknolojinin önemli olmadığı) birkaç sayfa var, bu sayfadaki belirli URL'leri <script> etiketinde gösteriyorum, böylece benim JavaScript'im (harici bir dosyada saklanır) sunucuya AJAX çağrıları gerçekleştirebilir. BöyleAJAX tabanlı URL'leri taramaktan botlar nasıl durdurulur?

şey:

a) Bunlar sadece AJAX erişilebilir (örn XmlHttpRequest): sunucu tarafında Şimdi

<html> 
    ... 
    <body> 
     ... 
     <script type="text/javascript"> 
     $(function() { 
      myapp.paths.someUrl = '/blah/foo'; // not hardcoded in reality, but N/A here 
     }); 
     </script> 
    </body> 
</html> 

, bu URL yılların en nitelikleri belirten ile korunmaktadır

b) sadece (HTTP POST erişilebilir bu JSON döner şekilde - bir reaso güvenlik)

sorun, n, botlar bu URL'leri tarar ve bunlarda HTTP GET'leri yapmaya çalışır ve 404'le sonuçlanır.

Botların javascript'i denememesi ve taramaması gerektiği izlenimindeydim. Peki bu URL'leri nasıl ele geçiriyorlar?

Bunu yapmasını engellememin bir yolu var mı?

Bu URL değişkenlerini gerçekten harici bir dosyaya taşıyamıyorum, çünkü yukarıdaki koddaki yorum önerdiğinden, URL'leri sunucu koduyla (gerçek sayfada yapılmalıdır) oluşturuyorum.

Web siteme, bu URL'leri (AJAX POST olmadığında) HTTP 410 (Gone) olarak temel aldım. Hangisi gerçekten sinir bozucu, zaten benim zaten konvuluted rota tabloya başka bir rota ekliyor.

Herhangi bir ipucu/öneriniz var mı? robots.txt önek tarafından

+1
+0

@ RPM1984: Sadece meraktan, kullanıcı aracısı tarafından yapılan isabet sayısına göre istatistikler topladınız mı? Bundan en çok hangi botlarla uğraşıyorsunuz? –

+0

Sanırım googlebot'un javascript'i taramak için bazı sınırlı yeteneği var, bu da bir sorun olabilir. Googlebot robots.txt'e saygı duyar, ancak bunları taramayı önlemek için bunu ayarlayabilirdiniz. –

cevap

2

Disallow URL

+0

"Önekle" ne demek istiyorsun? biraz genişletebilir misin ile/Daha açık ve ihtiyacınız kadar giriş izin vermeyebilir vesaire (örneğin/vesaire/foo başlayan tüm URL'ler bakmak tarayıcılarının önleyecektir – RPM1984

+0

yani "Disallow/blah" . –

+0

hmm gerçekten mümkün değil Ben 20 ajax'ified urls, farklı yolları/biçimleri var, bu yüzden hepsini belirli bir url yoluna taşımadıkça, 20 robots.txt girişine ihtiyacım olurdu. – RPM1984

İlgili konular