Každý vstup validujte na serveru, nonce používejte proti podvržené žádosti a oprávnění ověřujte samostatně. Výsledek nejprve spolehlivě uložte nebo zařaďte do fronty, teprve potom potvrďte úspěch. Spam omezujte několika přiměřenými vrstvami a přílohy ukládejte mimo dosah přímého spuštění. Integraci přiřaďte idempotentní klíč, stav pokusu a kontrolní frontu, aby timeout neztratil poptávku ani nevytvořil duplikát. Pravidelný syntetický test prověří celou cestu až do cíle.
Formuláře ve WordPressu shromažďují poptávky, registrace, podklady a souhlasy, ale viditelná pole jsou jen začátkem systému. Po odeslání je třeba údaje validovat, bezpečně uložit nebo předat, upozornit správného člověka a ukázat uživateli pravdivý výsledek. Pokud e-mail selže nebo CRM vrátí timeout, zelená zpráva o úspěchu může skrýt ztracenou poptávku.
Tento návod se zaměřuje na technický životní cyklus formuláře, nikoli na obchodní otázky a text kontaktního formuláře ani na konfiguraci SMTP. Ukazuje oddělení validace, ochranu před spamem, idempotentní zpracování, přílohy, integrace a testování. Cílem je formulář, který je použitelný, dohledatelný a sbírá jen údaje potřebné pro konkrétní proces.
Popište datový tok a stav výsledku
U každého pole určete účel, typ, povinnost, dobu uchování a příjemce. Zaznamenejte, zda záznam zůstává ve WordPressu, jde do CRM, nebo se pouze doručí odpovědné osobě. Minimalizace snižuje riziko i námahu uživatele. Volné textové pole nepoužívejte pro údaje, které potřebujete spolehlivě filtrovat nebo automaticky zpracovávat.
Podle potřeby definujte stavy přijato, zpracováno, čeká na integraci, odmítnuto a duplicitní. Hláška pro uživatele má vycházet z bodu, který systém skutečně dokončil. Pokud je poptávka bezpečně uložena, ale CRM dočasně nefunguje, lze potvrdit přijetí a chybu řešit ve frontě bez ztráty dat.
Validujte a normalizujte na serveru
Kontrola v prohlížeči pomáhá uživateli, ale požadavek lze odeslat i bez ní. Server ověří povinnost, délku, formát a povolené hodnoty a odmítne neočekávaná pole. E-mail normalizujte podle dohodnutého použití, číslo objednávky ověřte vůči oprávnění a volný text nepovažujte za bezpečné HTML.
Nonce chrání před vybraným typem podvržení, nikoli před spamem ani před neoprávněným přístupem k cizímu záznamu. U formuláře pro přihlášené uživatele kontrolujte capability a vlastnictví objektu. Výstup escapujte podle kontextu, SQL provádějte parametrizovaně a chybové zprávy nesmějí odhalovat interní cesty či celé odpovědi integrace.
- Serverová validace každého pole
- Limit délky a povolených hodnot
- Samostatná kontrola identity a oprávnění
- Bezpečný výstup a parametrizované dotazy
Vrstvěte ochranu proti spamu bez blokování lidí
Začněte časovým limitem, honeypotem, rate limitem a reputačním signálem podle rizika. Výzvu pro člověka zapínejte až u podezřelého požadavku, pokud řešení umožňuje adaptivní režim. Každá vrstva musí mít přístupnou alternativu a test pro mobil, klávesnici i čtečku obrazovky.
Nefiltrujte podle jednoho slova bez kontextu; legitimní poptávka může obsahovat technický odkaz nebo opakovaný text. Podezřelý záznam směrujte do karantény s omezenou dobou uchování a s uvedením důvodu. Metriky sledují blokace a falešně pozitivní výsledky, ale log neukládá celé citlivé zprávy jen kvůli diagnostice.
Zpracujte přílohy a integrace mimo kritickou odpověď
U přílohy ověřte velikost, skutečný typ, příponu a počet. Soubor přejmenujte, uložte mimo spustitelné veřejné umístění a zpřístupněte jej pouze oprávněné osobě prostřednictvím kontrolovaného stažení. Původní název zobrazujte bezpečně. Antivirová kontrola může být další vrstvou, nikoli důvodem povolit libovolný obsah.
Dlouhé volání CRM nebo generování dokumentu vložte do fronty. Záznam dostane stabilní idempotentní klíč, stav a počet pokusů. Timeout nevede k dalšímu vytvoření kontaktu bez kontroly. Trvalou chybu zobrazte vlastníkovi s mapováním pole a bezpečným způsobem ruční opravy a opakování.
Testujte uživatelský i provozní výsledek
Projděte prázdné, hraniční a neplatné hodnoty, diakritiku, dlouhý text, přílohu, dvojklik a obnovení stránky. Ověřte přesun fokusu na chybu, zachování bezpečných polí a srozumitelné hlášení. Vyzkoušejte výpadek e-mailu, CRM a fronty; poptávka se nesmí ztratit ani vytvořit dvakrát.
Po nasazení sledujte poměr přijatých, odmítnutých, spamových a nezpracovaných záznamů, stáří fronty a rozdíl mezi WordPressem a cílovým systémem. Určete vlastníka upozornění a pravidelný test kontrolní poptávky. Při úpravě pluginu nebo pole zopakujte mapování, notifikaci, export i mazání podle životního cyklu.
Časté dotazy
Stačí validace formuláře WordPress v JavaScriptu?
Ne. Validace na straně klienta zlepšuje zpětnou vazbu, ale dá se obejít. Server musí nezávisle ověřit typ, rozsah, povolené hodnoty a oprávnění a bezpečně zpracovat výstup.
Má formulář ukládat každý dotaz do databáze?
Záleží na potřebě a schváleném životním cyklu. Uložení zvyšuje dohledatelnost při výpadku e-mailu, ale také rozsah chráněných dat. Určete minimum, přístupy a dobu mazání.
Jak zabránit duplicitnímu kontaktu v CRM?
Každému odeslání přiřaďte stabilní idempotentní klíč, uložte výsledek integrace a před opakováním ověřte existující záznam. Dvojklik i timeout musí vést ke stejnému obchodnímu výsledku.