IIS 7.5 और 8.0 के साथ ब्लॉक बॉट


11

मैं IIS के साथ एक बॉट को ब्लॉक करना चाहूंगा। अपाचे के साथ आप अपने .htaccess फ़ाइल में एक कमांड जोड़ सकते हैं, जैसा कि यहाँ उल्लिखित है । मैं इसे IIS 7.5 के साथ कैसे पूरा करूंगा?

अपडेट करें

नीचे दिए गए उत्तर के अलावा, इस प्रश्न को पोस्ट करने के बाद से मैंने देखा कि कुल दृष्टिकोण हैं:

  1. स्वीकृत उत्तर में सूचीबद्ध URL स्कैन विकल्प।
  2. एक अनुरोध फ़िल्टरिंग नियम को परिभाषित करें (नीचे उदाहरण)
  3. एक URL पुनर्लेखन नियम निर्धारित करें (नीचे उदाहरण)

फ़िल्टर नियम का अनुरोध करें

 <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 रीराइटिंग नियम

<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>

अपनी अंतिम परियोजना के लिए मैंने विकल्प 2 के साथ जाना समाप्त कर दिया क्योंकि यह सुरक्षा पर केंद्रित है और IIS 7 में निर्मित एकीकृत URL स्कैन पर आधारित है।

जवाबों:


4

आम तौर पर आप robots.txt का उपयोग करते हैं। यह सभी अच्छी तरह से व्यवहार किए गए बॉट पर काम करेगा।

बॉट्स के लिए जो अच्छी तरह से व्यवहार नहीं किया जाता है, वह बहुत कम होता है जो आप कर सकते हैं। आप अपने फ़ायरवॉल या वेबसर्वर में कनेक्शन की गणना या बैंडविड्थ को सीमित कर सकते हैं, लेकिन प्रमुख बॉट आमतौर पर कई आईपी पते का उपयोग करेंगे। उपयोगकर्ता-एजेंट स्ट्रिंग्स के आधार पर सीमित करना आमतौर पर एक अच्छा विचार नहीं है, क्योंकि वे बॉट को स्पूफ करने के लिए तुच्छ हैं, और बॉट्स जो रोबोट के बारे में परवाह नहीं करते हैं। उनके पास उपयोगकर्ता के तार को भी खराब करने की प्रवृत्ति है। यह विशिष्ट मामले में काम करता है जब बॉट एक सही उपयोगकर्ता एजेंट भेजता है, लेकिन robots.txt का पालन नहीं करता है।

संपादित करें: यदि आप वास्तव में इसे अपने फ़ायरवॉल पर वापस धकेलने के बजाय उपयोगकर्ता-आधारित के आधार पर ब्लॉक करना चाहते हैं या मुझे लगता है कि URLScan का उपयोग करना सबसे आसान तरीका है। आप एक नियम लिखते हैं जो कुछ इस तरह दिखता है:

[Options]
 RuleList=DenyYandex

[DenyYandex]
 DenyDataSection=Agents
 ScanHeaders=User-Agent

[Agents]
 Yandex

2
मैं Yandex को ब्लॉक करने की कोशिश कर रहा हूं, जो robots.txt को अनदेखा करता है, लेकिन उपयोगकर्ता एजेंट में लगातार Yandex है।
जोश

11

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन IIS 7.5 में यदि आप रिक्वेस्ट फ़िल्टरिंग का उपयोग करते हैं, तो आप उपयोगकर्ता एजेंट द्वारा अस्वीकार कर सकते हैं।

IIS में, उस वेबसाइट पर जाएं जहां आप फ़िल्टर लागू करना चाहते हैं और फिर दाएँ फलक में, अनुरोध फ़िल्टरिंग आइकन पर क्लिक करें । (आपको सर्वर प्रबंधक के माध्यम से इस सुविधा को सक्षम करना पड़ सकता है)।

नियम टैब पर क्लिक करें , और फिर सुदूर सही सूची के साथ, "फ़िल्टरिंग नियम जोड़ें" चुनें

इसे एक नाम दें, और फिर स्कैन हेडर्स अनुभाग में, "उपयोगकर्ता-एजेंट" डालें।

आप किसी भी विशिष्ट फ़ाइल प्रकारों को लागू करने के लिए ब्लॉक कर सकते हैं, या आप इसे सभी फ़ाइल प्रकारों पर लागू करने के लिए इसे खाली छोड़ सकते हैं।

में स्ट्रिंग्स इंकार , उपयोगकर्ता एजेंट स्ट्रिंग आप ब्लॉक करना चाहते के सभी दर्ज करें। इस प्रश्न के मामले में, आप यहां "यांडेक्स" डालेंगे।

मैंने उपयोगकर्ता एजेंट स्विचर एक्सटेंशन का उपयोग करके क्रोम में इन परिवर्तनों की पुष्टि की ।


6

क्रॉलर्स के लिए जो Robots.txt का सम्मान नहीं करते हैं, आप उनके उपयोगकर्ता एजेंट के आधार पर ब्लॉक करने के लिए सर्वर पर URL रीराइट का उपयोग कर सकते हैं, देखें: http://chrisfulstow.com/use-the-iis-7url-rewrite-module-to ब्लॉक-क्रॉलर /

यहां मुख्य वेब क्रॉलर्स - Google बिंग और याहू को ब्लॉक करने का एक आसान तरीका है - किसी भी साइट को पूरे सर्वर पर अनुक्रमित करने से। यह वास्तव में उपयोगी है यदि आप अपने सभी बीटा को एक सार्वजनिक सामना करने वाले सर्वर के लिए धक्का देते हैं, लेकिन उन्हें खोज इंजन द्वारा अभी तक अनुक्रमित नहीं करना चाहते हैं।

  1. IIS URL पुनर्व्यवस्थित मॉड्यूल स्थापित करें।

  2. सर्वर स्तर पर, एक अनुरोध अवरोधन नियम जोड़ें। ब्लॉक उपयोगकर्ता-एजेंट हेडर मिलान रेगेक्स: googlebot | msnbot | slurp।

या, इस नियम को "C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config" में पेस्ट करें

<system.webServer>
   <rewrite>
      <globalRules>
         <rule name="RequestBlockingRule1" stopProcessing="true">
            <match url=".*" />
            <conditions>
               <add input="{HTTP_USER_AGENT}" pattern="googlebot|msnbot|slurp" />
            </conditions>
            <action type="CustomResponse" statusCode="403"
               statusReason="Forbidden: Access is denied."
               statusDescription="You do not have permission to view this page." />
         </rule>
      </globalRules>
   </rewrite>
</system.webServer>

यह Google, बिंग और याहू को सर्वर पर प्रकाशित किसी भी साइट को अनुक्रमित करने से रोक देगा। इसका परीक्षण करने के लिए, फ़ायरफ़ॉक्स यूज़र एजेंट स्विचर आज़माएँ ।

अधिक जानकारी के लिए: http://www.iis.net/download/URLRewrite


मुझे यकीन नहीं है कि rewrite नियमों को जोड़ने के लिए applicationHost.config को अपडेट करने की सिफारिश करना एक अच्छा विचार है - क्या उन्हें सिर्फ web.config में नहीं जाना चाहिए?
१०:२५ बजे ब्लाकमेन २ Bl

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.