Blokowanie dostępu do witryny dla zdefiniowanych adresów IP za pomocą reguł URL Rewrite

W pliku web.config, w sekcji <system.webServer></system.webServer> należy dodać poniższy kod (trzy kropki w kodzie "..." oznaczają pozostałą część pliku web.config):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 ...
 <system.webServer>
   ...
  <rewrite>
   <rules>
    <rule name="Zablokowani uzytkownicy" stopProcessing="true">
       <match url=".*" />
       <conditions logicalGrouping="MatchAny">
         <!-- Włączenie blokowania adresów IP podanych w sekcji <rewriteMaps></rewriteMaps> -->
         <add input="{Blokowane IP:{REMOTE_ADDR}}" pattern="1" />
         <!-- Blokowane wielu adresów IP z wybranego zakresu, w tym przypadku 200.201.*.* -->
         <add input="{REMOTE_ADDR}" pattern="200\.201\.[0-9]+\.[0-9]+" />
       </conditions>
    <!-- Po dodaniu poniższej linijki żądanie zostanie przerwane --> 
    <action type="AbortRequest" />
    </rule>
   </rules>
  <rewriteMaps> 
   <rewriteMap name="Blokowane IP">
<!-- Wskazać adresy do zablokowania -->
    <add key="101.102.103.104" value="1" />
    <add key="90.91.97.99" value="1" />
    <add key="57.52.55.59" value="1" />
   </rewriteMap>
  </rewriteMaps>
  </rewrite>
 ...
</system.webServer>
...
</configuration>


Zamiast przerwania żądania można wybrać inny typ akcji:

 

               <!-- Wyświetlenie strony ze zdefiniowanym statusem kodu -->

               <action type="CustomResponse" statusCode="403" statusReason="Forbidden"
               statusDescription="Forbidden" />        

lub

              <!-- Przepisanie linku do utworzonego wcześniej pliku strony -->
               <action type="Rewrite" url="/error.html" appendQueryString="false" />

lub

              <!-- Przekierowanie do dowolnej strony -->

               <action type="Redirect" url="http://www.google.com" appendQueryString="false" />

  • 1 Klienci ocenili te informacje jako pomocne
Czy ta informacja była pomocna?

Podobne

Sprawdzenie ustawień PHP

Wywołanie funkcji phpinfo() spowoduje wyświetlenie wszystkich ustawień PHP na serwerze dla danej...

Uruchomienie usługi WCF oraz błąd Memory gates checking failed because the free memory (..... bytes) is less than 5% of total memory

Aby uruchomic usługę WCF na serwerach Webio oraz uniknąć problemów z pamięcią podczas...

Błąd "The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration"

Do pliku web.config w sekcji configSections należy dodać poniższe wpisy:  <sectionGroup...

Znak dwukropka (":") powoduje błąd Bad Request

Do pliku web.config (niezależnie czy jest to aplikacja PHP czy ASP.NET) należy dodać wpis:...