reCAPTCHA v3 Modul pro Orchard Core CMS
reCAPTCHA v3 Modul pro Orchard Core CMS
reCAPTCHA v3 Modul pro Orchard Core CMS
reCAPTCHA v3 Modul pro Orchard Core CMS

Jak zajistit efektivní ochranu proti spamu v Orchard Core bez dopadu na uživatelský zážitek (UX)?

Nejefektivnějším řešením je implementace neviditelné ochrany reCAPTCHA v3 pomocí specializovaného modulu, jako je PV.ReCaptchaV3. Tento modul se integruje přímo do .NET HTTP request pipeline a automaticky validuje skóre uživatele na pozadí. Nabízí funkci globální ochrany pro všechny formuláře (včetně AJAX požadavků) a umožňuje snadnou správu výjimek a prahové citlivosti (Score Threshold) přímo v administraci Orchard Core, čímž eliminuje nutnost manuálního vkládání skriptů do jednotlivých stránek.

Neviditelná ochrana proti spamu v Orchard Core: Architektura modulu PV.ReCaptchaV3

Jak spojit bezkonkurenční uživatelský zážitek s robustní bezpečností v moderních decoupled aplikacích na platformě .NET.

Klíčové shrnutí: Článek představuje technickou architekturu modulu PV.ReCaptchaV3 pro Orchard Core. Modul řeší ochranu formulářů pomocí Google reCAPTCHA v3 s využitím asynchronní verifikace přes IHttpClientFactory a nativní integrace do Orchard Workflows jako custom TaskActivity. Administrační rozhraní využívající UI vzory zrychluje konfiguraci globálních interceptorů a AJAX ochrany.

Odstranění tření v konverzním trychtýři

Při vývoji webových aplikací řeším neustálý konflikt: marketing požaduje formuláře bez jakýchkoliv překážek pro maximalizaci konverzí, zatímco infrastruktura čelí nájezdům automatizovaných botů. Tradiční CAPTCHA systémy (luštění obrázků) dramaticky zhoršují UX. Pokud provádím modernizaci legacy systémů na moderní enterprise CMS řešení jakým je Orchard Core, tyto staré přístupy už neobstojí.

Ochrana proti spamu, o které návštěvník ani neví

PV.ReCaptchaV3 je moderní bezpečnostní modul pro Orchard Core, který chrání váš web před nevyžádanou poštou (spamem) a roboty. Znáte ty otravné úkoly, kdy musíte před odesláním formuláře hledat na obrázcích semafory nebo přechody pro chodce? Tomu je nyní konec. Modul využívá nejnovější technologii od Googlu, která funguje 100% neviditelně na pozadí.

Jak to funguje: Systém pomocí chytrých algoritmů sleduje chování na stránce a sám vyhodnotí, zda je návštěvník skutečný člověk, nebo škodlivý program (bot). Každému přiřadí skóre "důvěryhodnosti", podle kterého propustí jen bezpečné požadavky.
Unikátní funkce
Globální ochrana jedním kliknutím

Běžné systémy vyžadují složité vkládání kódů do každého jednotlivého formuláře na vašem webu. Modul přichází s funkcí Global Protection (Globální ochrana). Stačí tuto možnost zapnout v administraci a modul automaticky ochrání naprosto všechny formuláře na celém vašem webu najednou.

* Chcete některé stránky z ochrany vynechat? Modul umožňuje snadné nastavení výjimek pro konkrétní adresy nebo specifické formuláře.

Architektura pod kapotou: Validace a Integrace

Abych při tvorbě modulů na míru zajistil maximální výkon, využívám pro komunikaci s Google API striktně asynchronní IHttpClientFactory s implementací resilience. Tady je ukázka jádra verifikační služby, která vyhodnocuje klientský token vůči definovanému Score Threshold:

public class ReCaptchaVerificationService : IReCaptchaVerificationService
{
    private readonly IHttpClientFactory _httpClientFactory;
    private readonly ISiteService _siteService;
    private readonly ILogger<ReCaptchaVerificationService> _logger;

    public ReCaptchaVerificationService(IHttpClientFactory httpClientFactory, ISiteService siteService, ILogger<ReCaptchaVerificationService> logger)
    {
        _httpClientFactory = httpClientFactory;
        _siteService = siteService;
        _logger = logger;
    }

    public async Task<bool> ValidateTokenAsync(string token, string remoteIp)
    {
        var settings = (await _siteService.GetSiteSettingsAsync()).As<ReCaptchaSettings>();
        var client = _httpClientFactory.CreateClient("ReCaptchaClient");
        
        var response = await client.PostAsync("https://www.google.com/recaptcha/api/siteverify", 
            new FormUrlEncodedContent(new Dictionary<string, string>
            {
                { "secret", settings.SecretKey },
                { "response", token },
                { "remoteip", remoteIp }
            }));

        if (!response.IsSuccessStatusCode) 
        {
            _logger.LogWarning("ReCaptcha API komunikace selhala s kódem: {StatusCode}", response.StatusCode);
            return false;
        }
        
        var json = await response.Content.ReadFromJsonAsync<ReCaptchaResponse>();
        
        // Vyhodnocení asynchronní odpovědi včetně minimálního prahu důvěryhodnosti
        return json != null && json.Success && json.Score >= settings.ScoreThreshold;
    }
}

Nativní implementace do Orchard Workflows

Kromě automatické globální ochrany poskytuje modul integraci do nativních Workflows v Orchard Core. Vytvořil jsme vlastní TaskActivity, což umožňuje vizuální programování reakcí – např. pokud je detekován bot při registraci uživatele, Workflow odkloní proces a zapíše bezpečnostní alert.

[Category("Security")]
public class ValidateReCaptchaTask : TaskActivity<ValidateReCaptchaTask>
{
    private readonly IHttpContextAccessor _httpContextAccessor;
    private readonly IReCaptchaVerificationService _verificationService;

    public ValidateReCaptchaTask(IHttpContextAccessor httpContextAccessor, IReCaptchaVerificationService verificationService)
    {
        _httpContextAccessor = httpContextAccessor;
        _verificationService = verificationService;
    }

    public override string Name => "ValidateReCaptcha";
    public override LocalizedString DisplayText => T["Validate ReCaptcha V3 Token"];

    public override IEnumerable<Outcome> GetPossibleOutcomes(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
    {
        return Outcomes(T["Valid"], T["Invalid"]);
    }

    public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
    {
        var request = _httpContextAccessor.HttpContext?.Request;
        var token = request?.Form["g-recaptcha-response"].ToString();
        var ip = _httpContextAccessor.HttpContext?.Connection.RemoteIpAddress?.ToString();

        if (string.IsNullOrEmpty(token)) return Outcomes("Invalid");

        var isValid = await _verificationService.ValidateTokenAsync(token, ip);
        return Outcomes(isValid ? "Valid" : "Invalid");
    }
}

Klíčové funkcionality modulu

Neviditelná ochrana

Žádné luštění kódů. Návštěvníci mohou plynule odesílat objednávky a zprávy bez jediného přerušení.

Chytré výjimky

Modul dává plnou kontrolu do vašich rukou. Potřebujete, aby administrátorská část nepodléhala ochraně? Stačí přidat výjimku (Excluded Paths).

AJAX Protection

Podporuje moderní weby, kde se data odesílají dynamicky bez obnovení stránky (včetně Blazor/SPA integrací).

Poznámka z praxe: Při návrhu administrátorského rozhraní pro správu klíčů a prahů skóre využívám robustnosti platformy. Stejně jako prémiové komponenty Syncfusion (např. DataGridy) šetří stovky hodin při vývoji UI na frontendu, vizuální konfigurace modulu v administraci Orchardu radikálně snižuje čas potřebný k nasazení bezpečnostních politik – žádné hardcodování, plná kontrola konfigurace tenantů.

Proč tento modul používat?

Výhoda Popis přínosu pro byznys a vývoj
Dokonalý uživatelský zážitek Návštěvníci vašeho webu už nebudou frustrovaní řešením vizuálních hádanek.
Čistá e-mailová schránka Modul spolehlivě odfiltruje nevyžádané obchodní nabídky a spam dříve, než vám dorazí.
Rychlé nasazení Díky funkci globální ochrany máte celý web v bezpečí za pár minut.
Plná kontrola a Automatizace Výjimky, citlivost a reakce (Workflows) máte plně ve svých rukou přes vizuální rozhraní.

"PV.ReCaptchaV3 funguje jako dokonalý neviditelný vyhazovač vašeho webu. Skutečným zákazníkům s úsměvem otevře dveře, zatímco spamovací roboty vyžene dřív, než vůbec stihnou zaklepat."

Často kladené otázky (FAQ)

Proč pro modernizaci legacy systémů volit Orchard Core?

Orchard Core poskytuje čistou decoupled/headless architekturu postavenou na nejnovějším .NET. Umožňuje bezpečný multi-tenancy provoz a snadnou tvorbu modulů na míru, které izolují složitou byznys logiku (např. Workflows) od prezentační vrstvy.

Lze modul kombinovat s komplexními frontend prvky jako Syncfusion?

Absolutně. Modul má plnou podporu pro AJAX a zachytávání eventů. Pokud na frontendu používáte například bohaté Syncfusion formuláře či editory, modul transparentně vygeneruje token a přiloží jej do hlavičky nebo payloadu asynchronního požadavku bez nutnosti zásahu do Syncfusion komponent.

Zabezpečte svůj web bez kompromisů

Ideální řešení pro majitele webů a e-shopů, kteří chtějí maximální ochranu před spamem bez zbytečného obtěžování svých zákazníků na enterprise úrovni.

Poptat modul / integraci

Informace

  • Kategorie Modul Orchard Core
  • Určeno pro OrchardCore 3.0+
  • Frameworky a technologie
    .NET 10
    OrchardCore
    Bootstrap
    Razor
    JavaScript

Jaký je hlavní rozdíl mezi reCAPTCHA v2 a vámi implementovanou v3?

Verze 3 je pro uživatele zcela neviditelná (nevyžaduje klikání na obrázky s přechody pro chodce). Generuje skóre rizika na pozadí, čímž zásadně zlepšuje konverzní poměr B2B formulářů a UX celého webu.

Kde a jak probíhá bezpečnostní validace tokenu?

Validace probíhá striktně na backendu v C# pomocí ASP.NET Core API. Frontend pouze vygeneruje token, který je následně mým modulem ověřen proti serverům Googlu. Tímto přístupem znemožňuji botům obejít ochranu jednoduchou manipulací s JavaScriptem v prohlížeči.

Lze modul propojit s Orchard Core Forms a Workflows?

Ano, modul jsem navrhl s ohledem na ekosystém Orchard Core. Validaci lze snadno integrovat jako vlastní task (úlohu) do nativních Workflows, což umožňuje dynamicky blokovat odeslání spamových formulářů bez nutnosti psát další kód.