Ich möchte einen Bot mit IIS blockieren. Mit Apache können Sie Ihrer .htaccess-Datei einen Befehl hinzufügen, wie hier beschrieben . Wie würde ich dies mit IIS 7.5 erreichen?
Aktualisieren
Zusätzlich zur folgenden Antwort gibt es insgesamt Ansätze, die ich seit dem Posten dieser Frage entdeckt habe:
- URL-Scan-Option in der akzeptierten Antwort aufgeführt.
- Definieren Sie eine Anforderungsfilterregel (Beispiel unten)
- Definieren Sie eine URL-Umschreibungsregel (Beispiel unten)
Filterregel anfordern
<system.webServer>
<security>
<requestFiltering>
<filteringRules>
<filteringRule name="BlockSearchEngines" scanUrl="false" scanQueryString="false">
<scanHeaders>
<clear />
<add requestHeader="User-Agent" />
</scanHeaders>
<appliesTo>
<clear />
</appliesTo>
<denyStrings>
<clear />
<add string="YandexBot" />
</denyStrings>
</filteringRule>
</filteringRules>
</requestFiltering>
</security>
[...]
</system.webServer>
URL-Umschreibungsregel
<rule name="RequestBlockingRule1" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_USER_AGENT}" pattern="YandexBot" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="Get Lost." />
</rule>
Bei meinem letzten Projekt habe ich mich für Option 2 entschieden, da diese sicherheitsorientiert ist und auf dem in IIS 7 integrierten integrierten URL-Scan basiert.
Ich weiß, dass dies eine alte Frage ist, aber in IIS 7.5 können Sie dies vom Benutzeragenten ablehnen, wenn Sie die Anforderungsfilterung verwenden.
Gehen Sie in IIS zu der Website, auf die Sie den Filter anwenden möchten, und klicken Sie dann im rechten Bereich auf das Symbol Filter anfordern . (Möglicherweise müssen Sie diese Funktion über den Server-Manager aktivieren.)
Klicken Sie auf die Registerkarte Regeln und wählen Sie dann in der Liste ganz rechts "Filterregel hinzufügen" aus.
Geben Sie ihm einen Namen und geben Sie im Abschnitt " Scan-Header " "User-Agent" ein.
Sie können beliebige Dateitypen hinzufügen, die in " Gilt für" blockiert werden sollen , oder Sie können sie leer lassen, damit sie auf alle Dateitypen angewendet werden.
In Deny Strings , geben Sie alle der User - Agent - Strings Sie blockieren möchten. Im Fall dieser Frage würden Sie hier "Yandex" einfügen.
Ich habe diese Änderungen in Chrome mit der User Agent Switcher- Erweiterung bestätigt.
quelle
Für Crawler, die Robots.txt nicht respektieren, können Sie URL Rewrite auf dem Server verwenden, um basierend auf ihrem Benutzeragenten zu blockieren. Siehe: http://chrisfulstow.com/using-the-iis-7url-rewrite-module-to- Block-Crawler /
Für weitere Informationen: http://www.iis.net/download/URLRewrite
quelle