Je voudrais bloquer un bot avec IIS. Avec Apache, vous pouvez ajouter une commande à votre fichier .htaccess, comme indiqué ici . Comment pourrais-je accomplir cela avec IIS 7.5?
Mise à jour
En plus de répondre ci-dessous, il y a un total d'approches que j'ai découvert depuis la publication de cette question:
- Option d'analyse d'URL répertoriée dans la réponse acceptée.
- Définissez une règle de filtrage des demandes (exemple ci-dessous)
- Définissez une règle de réécriture d'URL (exemple ci-dessous)
Règle de filtrage des demandes
<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>
Règle de réécriture d'URL
<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>
Pour mon dernier projet, j'ai fini par choisir l'option 2 car elle est axée sur la sécurité et basée sur l'analyse d'URL intégrée intégrée à IIS 7.
Je sais que c'est une vieille question, mais dans IIS 7.5, vous pouvez refuser par l'agent utilisateur si vous utilisez le filtrage des demandes.
Dans IIS, accédez au site Web auquel vous souhaitez appliquer le filtre, puis dans le volet droit, cliquez sur l' icône Demander le filtrage . (vous devrez peut-être activer cette fonction via le gestionnaire de serveur).
Cliquez sur l' onglet Règles , puis dans la liste la plus à droite, sélectionnez «Ajouter une règle de filtrage»
Donnez-lui un nom, puis dans la section Scan Headers , mettez "User-Agent".
Vous pouvez ajouter n'importe quel type de fichier spécifique à bloquer dans S'applique à , ou vous pouvez le laisser vide pour qu'il s'applique à tous les types de fichiers.
Dans Deny Strings , entrez toutes les chaînes d'agent utilisateur que vous souhaitez bloquer. Dans le cas de cette question, vous mettriez "Yandex" ici.
J'ai confirmé ces modifications dans Chrome à l'aide de l' extension User Agent Switcher .
la source
Pour les robots qui ne respectent pas Robots.txt, vous pouvez utiliser la réécriture d'URL sur le serveur pour bloquer en fonction de leur agent utilisateur, voir: http://chrisfulstow.com/using-the-iis-7url-rewrite-module-to- blocs-chenilles /
Pour plus d'informations: http://www.iis.net/download/URLRewrite
la source