WordPress kontaktinės formos: saugumo kontrolinis sąrašas
Contact Form 7, WPForms, Gravity Forms, Ninja Forms ar Fluent Forms – įskiepis svarbus mažiau nei tai, kaip jis sukonfigūruotas ir prižiūrimas. Štai ką patikrinti ir ką tikrinti iš naujo po kiekvieno atnaujinimo.
Dauguma WordPress svetainių naudoja vieną iš saujelės formų įskiepių: Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Fluent Forms ir dar kelis. Bet kurį iš jų galima naudoti saugiai arba palikti plačiai atvirą. Skirtumas retai slypi pačiame įskiepyje – jis slypi jo nustatymuose, aplink jį esančiuose prieduose, tame, kaip laiškai palieka serverį, ir kas vyksta su žinutėmis joms atėjus.
- Atnaujinkite formų įskiepį ir kiekvieną priedą, o nebenaudojamus ištrinkite.
- Įjunkite įskiepio apsaugą nuo šlamšto – honeypot lauką, CAPTCHA integraciją, Akismet, kur tinka – ir patikrinkite, ar ji iš tikrųjų veikia.
- Siųskite pranešimus per SMTP su autentifikavimu iš savo domeno adreso.
- Apribokite įkeliamų failų tipus ir dydį ir neleiskite įkeltų failų viešai išvardyti ar naršyti.
- Gavėjo el. pašto adreso nerodykite puslapyje ir jo išeities kode.
- Saugokite tik tuos įrašus, kurių reikia, ir tik tiek laiko, kiek jų reikia.
- Po kiekvieno WordPress, temos ar bet kurio įskiepio atnaujinimo atlikite trumpą patikrą.
Atnaujinimai: formų įskiepis ir viskas aplink jį
Formų įskiepiai – populiarūs taikiniai, nes jie priima įvestį iš bet kurio interneto naudotojo. Saugumo pataisymai pateikiami kaip įprasti atnaujinimai, todėl atnaujinkite nedelsdami – ir ne tik pagrindinį įskiepį. Mokėjimų, failų įkėlimo, CRM sąsajų, sąlyginės logikos ar papildomų CAPTCHA paslaugų teikėjų priedai yra atskiras kodas su savo pažeidžiamumais. Lygiai taip pat ir įskiepiai, kuriuos kadaise įdiegėte išbandyti ir pamiršote. Išjungti nepakanka: išjungti įskiepiai vis dar yra serveryje, o jų failus kai kuriais atvejais galima pasiekti tiesiogiai. Jei nenaudojate – ištrinkite.
Apsauga nuo šlamšto: įjunkite ją, tada įrodykite, kad ji veikia
Dauguma formų įskiepių turi savo apsaugos nuo šlamšto parinkčių arba integruojasi su išorinėmis paslaugomis: honeypot lauką, kurį užpildo robotai ir kurio niekada nemato žmonės, CAPTCHA, pvz., reCAPTCHA, hCaptcha ar Cloudflare Turnstile, ir Akismet, kuri tikrina žinutės turinį pagal šlamšto duomenų bazę. Parinktys skiriasi priklausomai nuo įskiepio ir versijos, todėl patikrinkite nustatymus, užuot spėję. Išorinės CAPTCHA įkelia scenarijus iš trečiosios šalies, o Akismet pateiktą turinį siunčia išorinei paslaugai – abu dalykai turi būti nurodyti Jūsų privatumo politikoje ir, priklausomai nuo Jūsų konfigūracijos, sutikimų valdyme.
Dažnesnė problema – apsauga, kuri įjungta, bet neveikia. CAPTCHA su viešais bandomaisiais raktais praleidžia viską. Valdiklis, kurio scenarijų blokuoja podėlio ar optimizavimo įskiepis arba JavaScript klaida, nieko nesustabdo. Honeypot laukas be jį slepiančių stilių perskaitomas ekrano skaitytuvų ir užpildomas tikrų lankytojų. Todėl po bet kokio pakeitimo atidarykite formą privačiame lange, patikrinkite naršyklės konsolę ir puslapio išeities kodą ir išsiųskite bandomąją žinutę. Jei norite apsaugos, kuri nepriklauso nuo Google, nemokamas formexposed WordPress įskiepis prideda honeypot lauką, laiko patikrą ir darbo įrodymą bei po įskiepių atnaujinimų iš naujo patikrina svetainę – tai viena iš kelių galimybių.
Paštas: kaip jis siunčiamas ir kur keliauja
Pagal numatytuosius nustatymus WordPress laiškus perduoda serverio PHP pašto funkcijai, o daugelyje prieglobų tokie laiškai prastai autentifikuoti ir patenka į šlamštą – arba tyliai dingsta. Vietoj to siųskite per SMTP įskiepį ar savo prieglobos pašto paslaugą, naudodami tikrą pašto dėžutę su naudotojo vardu ir slaptažodžiu bei siuntėjo adresu savo domene, pavyzdžiui, specialų forms@ adresą. Domeno SPF, DKIM ir DMARC įrašai turi apimti šį siuntėją. Nerašykite lankytojo adreso į From lauką: tai ne Jūsų domenas, todėl žinutė negali įveikti DMARC suderinimo ir, priklausomai nuo lankytojo domeno politikos, patenka į šlamštą arba atmetama. Nurodykite jį kaip Reply-To, ir vis tiek galėsite atsakyti vienu spustelėjimu.
Gavėjo adresui vieta įskiepio nustatymuose, o ne puslapyje. Patikrinkite savo kontaktų puslapio išeities kodą: mailto nuoroda šalia formos ar paslėptas laukas su gavėjo adresu atiduoda tą adresą kiekvienam adresus renkančiam robotui. Senesnėse ar individualiai sukurtose formose gali būti dar blogiau – jei serveris pasitiki paslėptu gavėjo lauku, bet kas gali jį pakeisti ir naudoti Jūsų formą laiškams siųsti bet kokiais adresais.
Failų įkėlimas ir saugomi įrašai
Failų įkėlimas – rizikingiausia formų funkcija, todėl pirmiausia paklauskite savęs, ar jos apskritai reikia. Jei reikia, leiskite tik tuos tipus, kurių iš tikrųjų tikitės – tarkime, PDF ir įprastus paveikslėlių formatus, – užuot blokavę kelis pavojingus, ir nustatykite dydžio ribą. Patikrinkite, kur įskiepis saugo įkeltus failus: jų neturi būti įmanoma išvardyti viešame kataloge ir, geriausia, apskritai pasiekti atspėjamu adresu. Ištrinkite juos, kai jie sutvarkyti, arba siųskite juos kaip priedus, užuot laikę serveryje.
Daugelis formų įskiepių ar jų priedų kiekvieną pateikimą išsaugo WordPress duomenų bazėje, dažnai įskaitant šlamštą. Tai naudinga atsarginė kopija, kai laiškas nepasiekia adresato, bet kartu ir auganti asmens duomenų krūva. Pagal BDAR saugojimo trukmės apribojimo principą (Art. 5(1)(e)) tokie duomenys turėtų būti saugomi ne ilgiau, nei būtina. Nuspręskite, ar Jums reikia saugomų įrašų, kokių laukų ir kiek laiko, tada naudokite įskiepio automatinio trynimo nustatymą, jei jis yra, arba reguliariai trinkite senus įrašus. Duomenų bazės atsarginėse kopijose yra tie patys duomenys.
Po kiekvieno atnaujinimo
- 1Atidarykite kontaktų puslapį privačiame lange: forma ir jos apsaugos nuo šlamšto elementas rodomi teisingai, o naršyklės konsolėje nėra klaidų.
- 2Peržiūrėkite puslapio išeities kodą: honeypot laukas ir CAPTCHA scenarijus vis dar yra, o gavėjo adreso – nėra.
- 3Išsiųskite bandomąją žinutę: ji patenka į gautų laiškų aplanką, ne į šlamštą, o antraštėse matyti, kad SPF, DKIM ir DMARC patikros sėkmingos.
- 4Patikrinkite svarbius nustatymus: gavėją, siuntėjo adresą, leidžiamus įkeliamų failų tipus ir dydžius, kiek laiko saugomi įrašai.
- 5Patikrinkite, ar prie formos vis dar rodoma privatumo politikos nuoroda ir sutikimo tekstas, jei toks yra.
- 6Užsirašykite datą ir ką patikrinote, kad žinotumėte, kada forma paskutinį kartą įrodomai veikė.
Kai tai tampa rutina, užtrunka nedaug laiko ir sugauna būtent tuos tylius gedimus, kurie kitaip savaitėmis lieka nepastebėti. Norint pažvelgti iš išorės, nemokamas patikrinimas formexposed.com peržiūri viešus svetainės formų puslapius nieko nepateikdamas ir parodo, ar tikėtina apsauga yra ir ar ji veiksmingai sukonfigūruota – paskyros nereikia.