Aangepaste VCL voor het blokkeren van aanvragen

U kunt de Fastly CDN module voor Magento 2 gebruiken om Rand ACL met een lijst van IP adressen tot stand te brengen die u wilt blokkeren. Vervolgens kunt u die lijst gebruiken met een VCL-fragment om binnenkomende aanvragen te blokkeren. De code controleert het IP adres van het inkomende verzoek. Als het een IP adres aanpast inbegrepen in de ACL lijst, blokkeert snel het verzoek om tot uw plaats toegang te hebben en keert a terug 403 Forbidden error. Alle andere client-IP-adressen hebben toegang.

Vereisten:

  • Uw milieu moet worden gevormd om Fastly CDN te gebruiken. Zie Services voor snel configureren.

  • Zorg ervoor dat u de recentste versie van de Fastly CDN module voor Magento 2 in werking stelt. Zie Upgrade de snelste module.

  • Verifieer de omgevingsconfiguratie voor de sneldienst. Zie Snelle caching controleren.

  • U moet over beheerdersreferenties beschikken om toegang te krijgen tot de omgeving voor staging en productie.

  • Lijst met client-IP-adressen die moeten worden geblokkeerd

Creeer Rand ACL voor het blokkeren van cliëntIP adressen

U creeert Rand ACL om de lijst van IP te bepalen adressen aan blok. Na het creëren van ACL, kunt u het in een fragment van douaneVCL gebruiken om toegang tot uw het Opvoeren of plaats van de Productie te beheren.

Beheer toegang voor zowel het Opvoeren als de plaatsen van de Productie door Edge ACL met de zelfde naam in beide milieu's te creëren. De VCL-fragmentcode is van toepassing op beide omgevingen.

  1. Meld u aan bij de beheerder.
  2. Navigeren naar Winkels > Instellingen > Configuratie > Geavanceerd > Systeem > Volledige paginacache > Snelle configuratie.
  3. Breid uit Edge ACL sectie.
  4. Klikken ACL toevoegen om een lijst te maken. In dit voorbeeld geeft u de lijst "lijst van gewezen personen" een naam.
  5. Voer IP-adreswaarden in de lijst in. Alle client-IP-adressen die aan deze lijst worden toegevoegd, worden geblokkeerd en hebben geen toegang tot de site.
  6. Selecteer desgewenst de optie Negatief selectievakje indien nodig.

U verwijst naar Rand ACL door naam in uw VCL fragmentcode.

De aangepaste VCL voor de lijst van gewezen personen maken

NOTE
In dit voorbeeld ziet u hoe u geavanceerde gebruikers een VCL-codefragment kunt maken om aangepaste blokkeringsregels te configureren voor het uploaden naar de Fastly-service. U kunt een lijst van gewezen personen of een lijst van gewenste personen vormen die op land van Adobe Commerce Admin wordt gebaseerd gebruikend Blokkeren functie beschikbaar in de snelste CDN voor de module Magento 2.

Nadat u Edge ACL bepaalt, kunt u het gebruiken om het fragment tot stand te brengen VCL om toegang tot de IP adressen te blokkeren die in ACL worden gespecificeerd. U kunt hetzelfde VCL-fragment gebruiken in zowel de testomgeving als de productieomgeving, maar u moet het fragment afzonderlijk uploaden naar elke omgeving.

De volgende het fragmentcode van douaneVCL (formaat JSON) toont de logica om inkomende verzoeken met een cliëntIP adres te blokkeren dat een adres in lijst van gewezen personen ACL aanpast.

{
  "name": "blocklist",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ( client.ip ~ blocklist) { error 403 \"Forbidden\"; }"
}

Voordat u een op dit voorbeeld gebaseerd fragment maakt, controleert u de waarden om te bepalen of u wijzigingen wilt aanbrengen:

  • name: Naam voor het VCL-fragment. In dit voorbeeld hebben we de naam gebruikt blocklist.

  • priority: Hiermee bepaalt u wanneer het VCL-fragment wordt uitgevoerd. De prioriteit is 5 om onmiddellijk in werking te stellen en te controleren of een Admin- verzoek uit een toegestaan IP adres komt. Het fragment wordt uitgevoerd vóór de standaard VCL-fragmenten voor Magento's (magentomodule_*) een prioriteit van 50. Stel de prioriteit voor elk aangepast fragment in op een waarde hoger of lager dan 50, afhankelijk van het tijdstip waarop het fragment moet worden uitgevoerd. Fragmenten met een lagere prioriteit worden eerst uitgevoerd.

  • type: Geeft het type VCL-fragment op dat de locatie van het fragment in de gegenereerde VCL-code bepaalt. In dit voorbeeld gebruiken we recv, die de VCL-code in het dialoogvenster vcl_recv subroutine, onder de vaste plaat VCL en boven alle objecten. Zie de VCL-fragmentverwijzing snel voor de lijst met fragmenttypen.

  • content: Het fragment van VCL-code dat moet worden uitgevoerd, dat het IP-adres van de client controleert. Als IP in Rand ACL is, wordt het geblokkeerd van toegang met a 403 Forbidden fout voor de gehele website. Alle andere client-IP-adressen hebben toegang.

Na het herzien van en het bijwerken van de code voor uw milieu, gebruik één van beiden van de volgende methodes om het fragment van douaneVCL aan uw Fastly de dienstconfiguratie toe te voegen:

Het aangepaste VCL-fragment toevoegen

  1. Aanmelden aan de beheerder.

  2. Klikken Winkels > Instellingen > Configuratie > Geavanceerd > Systeem.

  3. Uitbreiden Volledige paginacache > Snelle configuratie > Aangepaste VCL-fragmenten.

  4. Klikken Aangepast fragment maken.

  5. Voeg de waarden van het VCL-fragment toe:

    • Naamblocklist

    • Typerecv

    • Prioriteit5

    • Voeg de VCL inhoud van fragment:

      code language-conf
      if ( client.ip ~ blocklist) { error 403 "Forbidden"; }
      
  6. Klikken Maken om het VCL-fragmentbestand met het naampatroon te genereren type_priority_name.vclbijvoorbeeld recv_5_blocklist.vcl

  7. Klik op VCL snel uploaden naar in de Snelle configuratie om het bestand toe te voegen aan de configuratie van de Fastly-service.

  8. Na uploads, vernieuw het geheime voorgeheugen volgens het bericht bij de bovenkant van de pagina.

Hiermee wordt de bijgewerkte versie van de VCL-code snel gevalideerd tijdens het uploadproces. Als de validatie mislukt, bewerkt u het aangepaste VCL-fragment om het probleem op te lossen. Vervolgens uploadt u de VCL opnieuw.

Aanvullende VCL-voorbeelden voor het blokkeren van aanvragen

De volgende voorbeelden tonen hoe te om verzoeken te blokkeren gebruikend gealigneerde voorwaardenverklaringen in plaats van een ACL lijst.

WARNING
In deze voorbeelden is de VCL-code opgemaakt als een JSON-payload die naar een bestand kan worden opgeslagen en in een Fastly API-aanvraag kan worden verzonden. U kunt de VCL-fragment van Adminof als een JSON-tekenreeks met de snelheids-API. Als u validatie wilt voorkomen wanneer u de snelheids-API gebruikt met een JSON-tekenreeks, moet u een backslash gebruiken om speciale tekens te verwijderen.

Zie Dynamische VCL-fragmenten gebruiken in de Fastly VCL documentatie.

VCL-codevoorbeeld: blokcode per land

In dit voorbeeld wordt de ISO 3166-1-landcode van twee tekens gebruikt voor het land dat aan het IP-adres is gekoppeld.

{
  "name": "blockbycountrycode",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ( client.geo.country_code == \"HK\" ) { error 405 \"Not allowed\";}"
}
NOTE
In plaats van een aangepast VCL-fragment kunt u het fragment Snelst gebruiken Blokkeren in de Adobe Commerce op cloudinfrastructuur Admin om blokkering te configureren op basis van landcode of een lijst met landcodes.

Voorbeeld van VCL-code: Blok door aanvraagheader van HTTP-gebruikersagent

{
  "name": "blockbyuseragent",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ( req.http.User-Agent ~ \"(UCBrowser|MQQBrowser|LieBaoFast|Mb2345Browser)\" ) {error 405 \"Not allowed\";}"
}
NOTE
In plaats van handmatig aangepaste VCL-fragmenten te uploaden, kunt u fragmenten toevoegen aan de $MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom in uw omgeving. Fragmenten in deze map worden automatisch geüpload wanneer u op VCL snel uploaden naar in de Commerce Admin. Zie Geautomatiseerde implementatie van aangepaste VCL-fragmenten in de Fastly CDN module voor Magento 2 documentatie.

Het aangepaste VCL-fragment wijzigen

  1. Aanmelden aan de beheerder.

  2. Klikken Winkels > Instellingen > Configuratie > Geavanceerd > Systeem.

  3. Uitbreiden Volledige paginacache > Snelle configuratie > Aangepaste VCL-fragmenten.

    Aangepaste VCL-fragmenten beheren

  4. In de Handeling klikt u op het instellingenpictogram naast het fragment dat u wilt bewerken.

  5. Klik op VCL snel uploaden naar in de Snelle configuratie sectie.

  6. Nadat het uploaden is voltooid, vernieuwt u de cache volgens het bericht boven aan de pagina.

WARNING
De Aangepaste VCL-fragmenten Met de optie UI worden alleen de fragmenten weergegeven die via Adobe Commerce Admin zijn toegevoegd. Als u fragmenten toevoegt met de snelheids-API, gebruikt u de API voor beheren.

Het aangepaste VCL-fragment verwijderen

  1. Aanmelden aan de beheerder.

  2. Klikken Winkels > Instellingen > Configuratie > Geavanceerd > Systeem.

  3. Uitbreiden Volledige paginacache > Snelle configuratie > Aangepaste VCL-fragmenten.

    Aangepaste VCL-fragmenten beheren

  4. In de Handeling klikt u op het prullenbakpictogram naast het fragment dat u wilt verwijderen.

  5. Klik in het volgende modale venster op DELETE en activeer een nieuwe versie.

WARNING
De Aangepaste VCL-fragmenten Met de optie UI worden alleen de fragmenten weergegeven die via Adobe Commerce Admin zijn toegevoegd. Als u fragmenten toevoegt met de snelheids-API, gebruikt u de API voor beheren.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26