Delen via


Aangepaste regels voor Azure Web Application Firewall op Azure Front Door

Met Azure Web Application Firewall op Azure Front Door kunt u de toegang tot uw webtoepassingen beheren op basis van de voorwaarden die u definieert. Een aangepaste WAF-regel (Web Application Firewall) bestaat uit een prioriteitsnummer, regeltype, overeenkomstvoorwaarden en een actie.

Er zijn twee soorten aangepaste regels: overeenkomende regels en limietregels. Een overeenkomstregel regelt de toegang op basis van een reeks overeenkomende voorwaarden. Een regel voor snelheidsbeperking regelt de toegang op basis van overeenkomende voorwaarden en de hoeveelheden van binnenkomende aanvragen. U kunt een aangepaste regel uitschakelen om te voorkomen dat deze wordt geëvalueerd, maar de configuratie toch behouden.

Zie Wat is snelheidsbeperking voor Azure Front Door? voor meer informatie over snelheidsbeperking.

Prioriteit, actietypen en overeenkomstvoorwaarden

U kunt de toegang beheren met een aangepaste WAF-regel die een prioriteitsnummer, een regeltype, een matrix met overeenkomstvoorwaarden en een actie definieert.

  • Prioriteit

    Een uniek geheel getal dat de volgorde van evaluatie van WAF-regels beschrijft. Regels met waarden met een lagere prioriteit worden geëvalueerd vóór regels met hogere waarden. De regelevaluatie stopt bij elke regelactie, met uitzondering van Logboek. Prioriteitsnummers moeten uniek zijn onder alle aangepaste regels.

  • Actie

    Definieert hoe een aanvraag moet worden gerouteerd wanneer een WAF-regel van toepassing is. U kunt een van de volgende acties kiezen die u wilt toepassen wanneer een aanvraag overeenkomt met een aangepaste regel.

    • Toestaan: de WAF staat toe dat de aanvraag wordt verwerkt, registreert een invoer in WAF-logboeken en sluit af.
    • Blokkeren: Verzoek is geblokkeerd. De WAF stuurt een reactie naar een klant zonder het verzoek verder door te sturen. De WAF registreert een invoer in WAF-logboeken en verlaat deze.
    • Logboek: De WAF registreert een vermelding in WAF-logboeken en gaat door met het evalueren van de volgende regel in de prioriteitsvolgorde.
    • Omleiding: de WAF leidt de aanvraag om naar een opgegeven URI, registreert een vermelding in WAF-logboeken en sluit af.
  • Wedstrijd conditie

    Definieert een overeenkomstvariabele, een operator en een overeenkomstwaarde. Elke regel kan meerdere overeenkomstvoorwaarden bevatten. Een overeenstemmingsvoorwaarde kan zijn gebaseerd op geolocatie, client-IP-adressen (CIDR), grootte of tekenreeksvergelijking. Een tekenreeksvergelijking kan worden uitgevoerd tegen een lijst van vergelijkingsvariabelen.

    • Match-variabele

      • AanvraagMethode
      • Query tekenreeks
      • PostArgs
      • AanvraagUri
      • Header aanvragen
      • RequestBody
      • Koekjes
    • Bediener

      • Alle: wordt vaak gebruikt om een standaardactie te definiëren als er geen regels overeenkomen. Any is een operator die alles overeenkomt.
      • Gelijk
      • Bevat
      • LessThan: Beperking van de grootte
      • GreaterThan: Beperking van de grootte
      • LessThanOrEqual: Beperking van de grootte
      • GreaterThanOrEqual: Beperking van de grootte
      • Begint met
      • EindigtMet
      • Regex
    • Regex

      Biedt geen ondersteuning voor de volgende bewerkingen:

      • Terugverwijzingen en het vastleggen van subexpressies
      • Willekeurige beweringen met een breedte van nul
      • Subroutineverwijzingen en recursieve patronen
      • Voorwaardelijke patronen
      • Backtracking-controlwerkwoorden
      • De \C single-byte richtlijn
      • De \R newline match richtlijn
      • De \K start van wedstrijd reset richtlijn
      • Aanduidingen en ingesloten code
      • Atomaire groepering en bezittelijke kwantificatoren
    • Negeren [optioneel]

      U kunt de negate voorwaarde instellen op waar als het resultaat van een voorwaarde teniet moet worden gedaan.

    • Transformeren [optioneel]

      Een lijst met tekenreeksen met namen van transformaties die moeten worden gedaan voordat de wedstrijd wordt geprobeerd. Dit kunnen de volgende transformaties zijn:

      • Hoofdletters
      • Kleine letters
      • Trimmen
      • Nullen verwijderen
      • URL-decoderen
      • UrlEncode
    • Overeenkomende waarde

      Ondersteunde waarden voor HTTP-aanvraagmethoden zijn onder andere:

      • TOEVOEGEN
      • BERICHT
      • ZETTEN
      • Hoofd
      • Verwijderen
      • SLOT
      • ONTSLUITEN
      • PROFIEL
      • OPTIES
      • PROPFIND
      • PROPPATCH
      • MKCOL
      • Kopieer
      • BEWEGEN
      • Patch
      • VERBINDEN

Voorbeelden

Bekijk de volgende voorbeelden.

Match op basis van HTTP-verzoekparameters

Stel dat u een aangepaste regel moet configureren om aanvragen toe te staan die aan de volgende twee voorwaarden voldoen:

  • De waarde van de Referer header is gelijk aan een bekende waarde.
  • De querytekenreeks bevat niet het woord password.

Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:

{
  "name": "AllowFromTrustedSites",
  "priority": 1,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestHeader",
      "selector": "Referer",
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "www.mytrustedsites.com/referpage.html"
      ]
    },
    {
      "matchVariable": "QueryString",
      "operator": "Contains",
      "matchValue": [
        "password"
      ],
      "negateCondition": true
    }
  ],
  "action": "Allow"
}

HTTP PUT-verzoeken blokkeren

Stel dat u een aanvraag moet blokkeren die gebruikmaakt van de HTTP PUT-methode.

Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:

{
  "name": "BlockPUT",
  "priority": 2,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestMethod",
      "selector": null,
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "PUT"
      ]
    }
  ],
  "action": "Block"
}

Beperking van de grootte

Met een Azure Front Door WAF kunt u aangepaste regels maken die een lengte- of groottebeperking toepassen op een deel van een binnenkomende aanvraag. Deze groottebeperking wordt gemeten in bytes.

Stel dat u verzoeken moet blokkeren waarvan de URL langer is dan 100 tekens.

Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:

{
  "name": "URLOver100",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "GreaterThanOrEqual",
      "negateCondition": false,
      "matchValue": [
        "100"
      ]
    }
  ],
  "action": "Block"
}

Match op basis van aanvraag-URI

Stel dat u aanvragen moet toestaan waarvan de URI 'login' bevat.

Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:

{
  "name": "URIContainsLogin",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "Contains",
      "negateCondition": false,
      "matchValue": [
        "login"
      ]
    }
  ],
  "action": "Allow"
}

Aangepaste regels kopiëren en dupliceren

Aangepaste regels kunnen worden gedupliceerd binnen een bepaald beleid. Wanneer u een regel dupliceert, moet u een unieke naam voor de regel en een unieke prioriteitswaarde opgeven. Bovendien kunnen aangepaste regels worden gekopieerd van het ene Azure Front Door WAF-beleid naar het andere, zolang het beleid beide in hetzelfde abonnement zit. Wanneer u een regel van het ene beleid naar het andere kopieert, moet u het Azure Front Door WAF-beleid selecteren waarin u de regel wilt kopiëren. Nadat u het WAF-beleid hebt geselecteerd, moet u de regel een unieke naam geven en een prioriteitsrang toewijzen.

Volgende stappen