Aangepaste VCL voor het blokkeren van aanvragen
U kunt de Fastly CDN module voor Magento 2 gebruiken om Edge 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 ACL lijst, blokkeert snel het verzoek om tot uw plaats toegang te hebben en keert a 403 Forbidden error
terug. Alle andere client-IP-adressen hebben toegang.
Eerste vereisten:
-
Uw milieu moet worden gevormd om Fastly CDN te gebruiken. Zie vormen de Snelle diensten.
-
Zorg ervoor dat u de recentste versie van de Fastly CDN module voor Magento 2 in werking stelt. Zie Verbetering de Snelle Module.
-
Verifieer de omgevingsconfiguratie voor de sneldienst. Zie Snelle controle caching.
-
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
Edge ACL maken voor het blokkeren van client IP-adressen
U creeert Edge 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.
- Meld u aan bij de beheerder.
- Navigeer aan Opslag > Montages > Configuratie > Geavanceerd > Systeem > Volledige het Geheime voorgeheugen van de Pagina > Gemakkelijke Configuratie.
- Breid ACL van Edge sectie uit.
- Klik toevoegen ACL om een lijst tot stand te brengen. In dit voorbeeld geeft u de lijst "lijst van gewezen personen" een naam.
- 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.
- Naar keuze, selecteer GeNegeerde checkbox indien nodig.
U verwijst Edge ACL door naam in uw VCL fragmentcode.
De aangepaste VCL voor de lijst van gewezen personen maken
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 naamblocklist
gebruikt. -
priority
: hiermee wordt bepaald wanneer het VCL-fragment wordt uitgevoerd. De prioriteit is5
om onmiddellijk in werking te stellen en te controleren of een Admin- verzoek uit een toegestaan IP adres komt. Het fragment loopt vóór om het even welk standaard Magento VCL fragmenten (magentomodule_*
) toegewezen 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 werecv
, dat de VCL-code in devcl_recv
-subroutine invoegt, onder de vaste plaat VCL en boven alle objecten. Zie de Snelle VCL fragmentverwijzingvoor de lijst van fragmenttypes. -
content
: Het fragment van VCL-code dat moet worden uitgevoerd, dat het client-IP-adres controleert. Als IP in ACL van Edge is, wordt het geblokkeerd van toegang met een403 Forbidden
fout voor de volledige 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:
-
voeg het fragment van douaneVCL van Admintoe. Deze methode wordt aanbevolen als u toegang kunt krijgen tot de beheerder. (Vereist Snelle versie 1.2.58of later.)
-
Sparen het JSON codevoorbeeld aan een dossier (bijvoorbeeld,
blocklist.json
) en uploadt het gebruikend Fastly API. Gebruik deze methode als u geen toegang hebt tot de beheerder.
Het aangepaste VCL-fragment toevoegen
-
Loginaan Admin.
-
Klik Opslag > Montages > Configuratie > Geavanceerd > Systeem.
-
Breid Volledige het Geheime voorgeheugen van de Pagina > Snelle Configuratie uit > de Fragmenten van VCL van de Douane.
-
Klik creëren het Fragment van de Douane.
-
Voeg de waarden van het VCL-fragment toe:
-
Naam —
blocklist
-
Type —
recv
-
Prioriteit —
5
-
Voeg de VCL fragmentinhoud toe:
code language-conf if ( client.ip ~ blocklist) { error 403 "Forbidden"; }
-
-
Klik creëren om het VCL fragmentdossier met het naampatroon
type_priority_name.vcl
te produceren, bijvoorbeeldrecv_5_blocklist.vcl
-
Na de pagina herlaadt, uploadt de klik VCL aan Fastly in de Snelle sectie van de Configuratie om het dossier aan de Snelle de dienstconfiguratie toe te voegen.
-
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.
- Naam:
<name of the VCL>
- Dynamisch:
<0/1>
- Type:
<type>
- Prioriteit:
<priority>
- Inhoud:
<content>
Zie Gebruikend dynamische fragmenten VCLin de Fastly documentatie VCL.
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\";}"
}
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\";}"
}
$MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom
in uw omgeving. De fragmenten in deze folder uploaden automatisch wanneer u klikt uploadt VCL aan Fastly in Commerce Admin. Zie Geautomatiseerde plaatsing van de fragmenten VCL van douaneVCLin de Fastly CDN module voor Magento 2 documentatie.Het aangepaste VCL-fragment wijzigen
-
Loginaan Admin.
-
Klik Slaat op > Montages > Configuratie > Geavanceerd > Systeem.
-
Breid Volledige het Geheime voorgeheugen van de Pagina > Snelle Configuratie uit > de Fragmenten van VCL van de Douane.
-
In de kolom van de Actie, klik het montagespictogram naast het uit te geven fragment.
-
Na de pagina herlaadt, uploadt de klik VCL aan Fastly in de Snelle sectie van de Configuratie.
-
Nadat het uploaden is voltooid, vernieuwt u de cache volgens het bericht boven aan de pagina.
Het aangepaste VCL-fragment verwijderen
-
Loginaan Admin.
-
Klik Slaat op > Montages > Configuratie > Geavanceerd > Systeem.
-
Breid Volledige het Geheime voorgeheugen van de Pagina > Snelle Configuratie uit > de Fragmenten van VCL van de Douane.
-
In de kolom van de Actie, klik het vuilpictogram naast het fragment om te schrappen.
-
Voor het volgende modale venster, klik DELETE en activeer een nieuwe versie.