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

Przechwytywanie błędów w aplikacji MVC

W celu wyświetlania dokładnych szczegółów błędu oprócz samego komunikatu:   "Sorry, an...

'Sys' is undefined

W większości przypadków gdy witryna generuje błąd "'Sys' is undefined" mamy do...

Błąd HTTP Error 500.30 - ANCM In-Process Start Failure po opublikowaniu aplikacji .NET Core

W celu usunięcia problemu z błędem HTTP Error 500.30 - ANCM In-Process Start Failure należy w...

Obsługa błędów za pomocą modułu ELMAH

Do zapisywania błędów występujących w aplikacjach serwery IIS Webio mają domyślnie zainstalowany...