Tovább a tartalomhoz

hCaptcha és Cloudflare Turnstile blokkolása

A hCaptcha és a Cloudflare Turnstile blokkolása a szkriptközponttal, helyőrzővel, WPForms példával és MU-pluginnal.

Ha nem akarsz Google reCAPTCHA-t használni, a hCaptcha és a Cloudflare Turnstile is választható. Egyik sem része a Complianz beépített integrációinak, de a szkriptközponttal könnyen blokkolhatók, és helyőrzőt is adhatsz hozzájuk.

https://minta-bolt.hu/wp-admin/admin.php?page=complianz&id=integrations
A szkriptközpont három listája: szkript hozzáadása, blokkolás és engedélyezési lista

A képen a Complianz → Integrations → Script Center oldal látszik; a blokkolandó szkriptek URL-jét a Szkript, iframe vagy bővítmény blokkolása listában adhatod meg.

A példa a WPForms-ot használja, mert ez a legnépszerűbb űrlapbővítmény, amelynek közvetlen hCaptcha-integrációja van. A teendő két részből áll: a hCaptcha blokkolása és egy helyőrző az űrlapon.

Ez egyéni döntés. A hCaptcha külső szerverről tölt be egy JavaScriptet, ami IP-címet és más adatot küld oda. Az adatok feldolgozása feltehetően az Egyesült Államokban történik, és sokan az adattovábbítási szabályozás (Privacy Shield) körüli bizonytalanság miatt a biztonság kedvéért hozzájáruláshoz kötik.

A WPForms ingyenes változatában nincs HTML-blokk az űrlapon, de minden mező Description (leírás) része HTML-t fogad. A helyőrzőt az utolsó, küldés előtti mezőbe érdemes tenni:

<button data-service="hcaptcha" data-category="marketing" class="cmplz-blocked-content-container cmplz-blocked-content-notice cmplz-accept-service cmplz-accept-marketing cmplz-hcaptcha" style="text-align: left; cursor: pointer;">
Click here to accept hCaptcha cookies before sending the form.
</button>

Ha nem gombot szeretnél, a button elemet írd át div-re a HTML-ben és a CSS-ben is.

A helyőrző formázásához és a hCaptcha div hozzájárulás előtti elrejtéséhez (a hCaptcha HTML-je helyben betöltődik, csak a kihívás van blokkolva) ez a CSS kell:

button.cmplz-blocked-content-container.cmplz-blocked-content-notice.cmplz-accept-service.cmplz-accept-marketing.cmplz-hcaptcha {
background: whitesmoke;
border: 2px solid hsl(11deg 100% 62%);
border-radius: 3px;
color: #222222;
font-size: 1rem;
padding: 10px 20px;
width: 100%;
}
div.wpforms-container-full .wpforms-form .h-captcha[data-size="normal"],
.h-captcha[data-size="normal"] {
display: none;
}
.cmplz-marketing .h-captcha {
display: block !important;
}

A hCaptcha blokkolása a szkriptközpontban

Szekció neve “A hCaptcha blokkolása a szkriptközpontban”
  1. Nyisd meg a Complianz → Integrations → Script Center oldalt.
  2. A Szkript, iframe vagy bővítmény blokkolása listán kattints az Új hozzáadása gombra.
  3. Add meg a hCaptcha szkript URL-részleteit (hcaptcha.com, hcaptcha.js), és válaszd a marketing kategóriát.

Ha mindent egy MU-pluginba szeretnél csomagolni, ez a kód blokkolja a hCaptcha-t, felveszi a felismert szolgáltatások közé, és beteszi a helyőrző láthatóságához szükséges CSS-t. A helyőrzőt az űrlapba továbbra is neked kell beírnod. A példa ugyanazokat az osztályokat használja, mint a WPForms-változat; ha akarod, módosíthatod.

<?php
defined( 'ABSPATH' ) or die( "you do not have access to this page!" );
add_filter( 'cmplz_known_script_tags', 'cmplz_hcaptcha_script' );
function cmplz_hcaptcha_script( $tags ) {
$tags[] = array(
'name' => 'hcaptcha',
'category' => 'marketing',
'urls' => array(
'hcaptcha.com',
'hcaptcha.js',
),
);
return $tags;
}
/**
* A szolgáltatás felkerül a felismertek listájára, így alapértelmezetten
* be lesz állítva, és szerepel a róla szóló tájékoztatóban.
*/
function cmplz_hcaptcha_detected_services( $services ) {
if ( ! in_array( 'hcaptcha', $services ) ) {
$services[] = 'hcaptcha';
}
return $services;
}
add_filter( 'cmplz_detected_services', 'cmplz_hcaptcha_detected_services' );
add_action( 'cmplz_banner_css', 'cmplz_hcaptcha_css' );
function cmplz_hcaptcha_css() {
?>
button.cmplz-blocked-content-container.cmplz-blocked-content-notice.cmplz-accept-service.cmplz-accept-marketing.cmplz-hcaptcha {
background: whitesmoke;
border: 2px solid hsl(11deg 100% 62%);
border-radius: 3px;
color: #222222;
font-size: 1rem;
padding: 10px 20px;
width: 100%;
}
div.wpforms-container-full .wpforms-form .h-captcha[data-size="normal"], .h-captcha[data-size="normal"] {
display: none;
}
.cmplz-marketing .h-captcha {
display: block !important;
}
<?php
}

A Cloudflare Turnstile a Google reCAPTCHA adatvédelmi szempontból barátibb alternatívája. A reCAPTCHA a CAPTCHA-piac nagy részét uralja, de a GDPR-ral és más adatvédelmi szabályokkal csak részben egyeztethető össze. A hasonló alternatívák (például Friendly Captcha, hCaptcha) szintén az átlátható adatkezelésre és a látogató magánszférájának kímélésére törekednek.

A gond az automatikus CAPTCHA-kihívásokkal az, hogy a szöveges vagy számolós feladatokkal ellentétben a látogató viselkedési adatait gyűjtik, hogy megkülönböztessék az embert a bottól.

A Cloudflare célja egy helyi, az eszközre épülő kihívás, amely nem igényli, hogy a látogatót megkérdezzék, és az adatait a Cloudflare szerverén kezeljék. Ezt az Apple-lel közösen kidolgozott „privacy access token”-ekkel valósítja meg: a böngésző vagy az alkalmazás az Applétől kérdezi meg, hogy az eszköz valódi-e, ahelyett hogy böngészőadatokat gyűjtene. Ez a megközelítés akkor terjed gyorsan, ha a nagy gyártók elfogadják az új szabványt. Jelenleg a tokenek az iOS és macOS újabb változataival működnek, máshol a Turnstile a hagyományos módszerre, egy Cloudflare felé indított API-hívásra esik vissza. Ezt a Cloudflare „adatvédelmet megőrzőnek” nevezi, de hasonló adatvédelmi kérdéseket vet fel, mint a Google Fonts API.

A példa két feltételből indul ki:

  • kliensoldali megjelenítés (client-side rendering);
  • implicit megjelenítés (ez az alapértelmezett).

Adatvédelmi szempontból a kliensoldali megjelenítés javasolt: a szerveroldali vagy sütimentes megközelítés jelentősen csökkenti a látogató ellenőrzését.

  1. Nyisd meg a Complianz → Integrations → Script Center oldalt.
  2. Blokkold a https://challenges.cloudflare.com/turnstile/v0/api.js hívást: a Szkript, iframe vagy bővítmény blokkolása listán elég a turnstile kulcsszót megadni, mert az URL-ben szerepel.
  3. Kategóriának választhatsz marketinget vagy statisztikát. A jelenlegi vizsgálatok szerint az adatot nem marketingre használják, ezért a statisztika elegendő; a Cloudflare irányítópultján látható is, hogy statisztikai célú.

A blokkolás a widgetet teljesen eltávolítja az oldalról. Ha űrlapba építed be, kell egy helyőrző, hogy a látogató tudja: egy kihívás van blokkolva hozzájárulásig. Építsd fel a helyőrzőt ugyanúgy, mint a reCAPTCHA-nál (lásd reCAPTCHA kézi blokkolása és wpDiscuz): egy elem a cmplz-blocked-content-container cmplz-blocked-content-notice osztályokkal, a hozzájárulást kiváltó cmplz-accept-service vagy cmplz-accept-<kategória> osztállyal, és olyan szöveggel, amely megmondja, hogy a hozzájárulás nélkül a kihívás nem töltődik be.

Friendly Captcha: egyszerűbb megoldás a reCAPTCHA helyett

Szekció neve “Friendly Captcha: egyszerűbb megoldás a reCAPTCHA helyett”

A Google reCAPTCHA a legnépszerűbb spamvédelem, de adatvédelmi szempontból gondot jelent: az adatminimalizálás elvének egyáltalán nem felel meg, ezért a GDPR szerint hozzájárulás kell hozzá. A Complianz megoldása, hogy a reCAPTCHA-t hozzájárulásig blokkolja, és csak hozzájárulás után, szükség esetén indítja el. Ez viszont függőségi gondokat okozhat: a reCAPTCHA sok bővítménybe be van építve, és ha bizonyos funkciók arra számítanak, hogy mindig betöltődik, elromolhatnak. Külön integráció kell például a Contact Form 7-hez, és a gyorsítótár- vagy optimalizáló bővítmények is zavarhatják a működést (JavaScript halasztása, összefűzése, kicsinyítése).

A legegyszerűbb tartós megoldás az adatvédelmi szempontból eleve megfelelő captcha. A Friendly Captcha for WordPress olyan megoldás, amelynél nem kell blokkolni a funkciókat, és nem kell függőségeket ellenőrizni.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások