Verwenden von web.config zum Sperren von Benutzeragenten

8

Ist es möglich, bestimmte Benutzeragenten direkt aus web.config zu verbannen? Bestimmte Roboter scheinen robots.txt nicht zu folgen, und um sinnlose Serverlast (und Log-File-Spamming) zu vermeiden, möchte ich verhindern, dass bestimmte Anfrageklassen (insbesondere basierend auf User-Agent oder sehr vielleicht IP-Adresse) fortfahren .

Bonuspunkte, wenn Sie wissen, ob es in ähnlicher Weise möglich ist zu verhindern, dass solche Anfragen vollständig in der Protokolldatei von IIS protokolliert werden. (d. h. if-request-match, Weiterleitung an / dev / null, wenn Sie meine Bedeutung verstehen).

Eine Lösung für win2003 wäre vorzuziehen, aber das ist ein wiederkehrendes Problem - wenn es eine saubere Lösung für IIS7 aber nicht für IIS6 gibt, würde ich mich freuen, es zu wissen.

Bearbeiten: Sorry 'über die unvollständige Frage früher, hatte ich Tab + versehentlich eingegeben.

    
Eamon Nerbonne 23.07.2009, 16:27
quelle

3 Antworten

11

Dies kann ziemlich einfach mit dem URLRewrite-Modul in IIS7 getan werden. Aber ich weiß wirklich nicht, ob dadurch verhindert wird, dass diese Anfragen protokolliert werden.

%Vor%     
Albert Walker 24.07.2009, 01:07
quelle
3

Sie könnten ein benutzerdefiniertes ASP.Net HttpModule schreiben, wie ich es für meine Site getan habe, um einige Rogue Bots zu verbieten. Hier ist der Code:

%Vor%

Sie müssen es in web.config registrieren und den regulären Ausdruck angeben, der verwendet wird, um die Zeichenfolge des Benutzeragenten abzugleichen. Hier ist eine, die ich verwendet habe, um msnbot / 1.1-Verkehr zu verbieten:

%Vor%     
emertechie 29.11.2009 16:31
quelle
0

Glauben Sie nicht, dass Sie dies von web.config aus tun können (Autorisierung in web.config ist für Benutzer, nicht für Bots). Ihre beste Wette wäre eine Art von benutzerdefinierten ISAPI-Filter für IIS selbst. Es gibt einen Blog hier darüber . Viel Glück!

    
Dan Diplo 23.07.2009 18:50
quelle

Tags und Links