WordPress-kontaktskjemaer: en sikkerhetssjekkliste
Contact Form 7, WPForms, Gravity Forms, Ninja Forms eller Fluent Forms – programtillegget betyr mindre enn hvordan det settes opp og vedlikeholdes. Her er hva du bør kontrollere, og kontrollere på nytt etter hver oppdatering.
De fleste WordPress-nettsteder bruker ett av en håndfull skjemaprogramtillegg: Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Fluent Forms og noen andre. Alle kan drives sikkert eller stå helt åpne. Forskjellen ligger sjelden i selve programtillegget, men i innstillingene, tilleggene rundt det, hvordan e-post forlater serveren og hva som skjer med meldingene når de kommer frem.
- Hold skjemaprogramtillegget og hvert tillegg oppdatert, og slett dem du ikke lenger bruker.
- Aktiver programtilleggets eget søppelpostvern – fellefelt, CAPTCHA-integrasjon, Akismet der det passer – og bekreft at det faktisk virker.
- Send varsler gjennom autentisert SMTP fra en adresse på ditt eget domene.
- Begrens opplastinger etter type og størrelse, og hindre at opplastede filer listes eller åpnes offentlig.
- Hold mottakerens e-postadresse utenfor siden og kildekoden.
- Lagre bare oppføringene du trenger, og bare så lenge du trenger dem.
- Utfør en kort kontroll etter hver oppdatering av WordPress, temaet eller et programtillegg.
Oppdateringer: skjemaprogramtillegget og alt rundt det
Skjemaprogramtillegg er populære mål fordi de tar imot inndata fra alle på internett. Sikkerhetsrettinger kommer som vanlige oppdateringer, så oppdater raskt – og ikke bare hovedprogramtillegget. Tillegg for betalinger, opplastinger, CRM-tilkoblinger, betinget logikk eller ekstra CAPTCHA-leverandører er separat kode med egne sårbarheter. Det samme gjelder programtillegg du en gang installerte som test og glemte. Deaktivering er ikke nok: deaktiverte programtillegg ligger fortsatt på serveren, og filene deres kan i noen tilfeller nås direkte. Hvis du ikke bruker det, slett det.
Søppelpostvern: slå det på, og dokumenter så at det virker
De fleste skjemaprogramtillegg har egne søppelpostvalg eller integrerer eksterne tjenester: et fellefelt boter fyller ut og mennesker aldri ser, CAPTCHA-er som reCAPTCHA, hCaptcha eller Cloudflare Turnstile, og Akismet, som kontrollerer meldingsinnhold mot en søppelpostdatabase. Valgene varierer med programtillegg og versjon, så kontroller innstillingene i stedet for å anta. Eksterne CAPTCHA-er laster skript fra tredjepart, og Akismet sender innsendt innhold til en ekstern tjeneste – begge hører hjemme i personvernerklæringen og, avhengig av oppsettet, i samtykkehåndteringen.
Det vanligere problemet er beskyttelse som er slått på, men ikke virker. En CAPTCHA med offentlige testnøkler slipper alt gjennom. En widget der skriptet blokkeres av et mellomlagrings- eller optimaliseringsprogramtillegg, eller en JavaScript-feil, stopper ingenting. Et fellefelt uten stilene som skjuler det, leses opp av skjermlesere og fylles ut av ekte besøkende. Åpne derfor skjemaet i et privat vindu etter hver endring, kontroller nettleserkonsollen og sidens kildekode, og send en testmelding. Hvis du vil ha beskyttelse som ikke avhenger av Google, legger det gratis formexposed-programtillegget for WordPress til fellefelt, tidskontroll og arbeidsbevis og kontrollerer nettstedet på nytt etter oppdateringer av programtillegg – ett alternativ blant flere.
E-post: hvordan den sendes og hvor den går
Som standard gir WordPress e-post videre til serverens PHP-e-postfunksjon, og hos mange verter er meldingene dårlig autentisert og havner i søppelpost – eller forsvinner stille. Send i stedet gjennom et SMTP-programtillegg eller vertens e-posttjeneste, med en ekte postkasse med brukernavn og passord og en avsenderadresse på eget domene, som en egen forms@-adresse. Domenets SPF-, DKIM- og DMARC-oppføringer må dekke denne avsenderen. Ikke sett den besøkendes adresse i From-feltet: det er ikke domenet ditt, så meldingen kan ikke oppfylle DMARC-samsvar og havner, avhengig av den besøkendes domenepolicy, i søppelpost eller avvises. Sett den som Reply-To, så kan du fortsatt svare med ett klikk.
Mottakeradressen hører hjemme i programtilleggets innstillinger, ikke på siden. Kontroller kildekoden til kontaktsiden: en mailto-lenke ved skjemaet, eller et skjult felt med mottakeradressen, gir adressen til hver innsamlingsbot. I eldre eller spesialbygde skjemaer kan det være verre – hvis serveren stoler på et skjult mottakerfelt, kan hvem som helst endre det og bruke skjemaet ditt til å sende e-post til vilkårlige adresser.
Opplastinger og lagrede oppføringer
Filopplastinger er den mest risikable skjemafunksjonen, så spør først om du trenger dem i det hele tatt. Hvis ja, tillat bare typene du faktisk forventer – for eksempel PDF og vanlige bildeformater – i stedet for å blokkere noen få farlige, og sett en størrelsesgrense. Kontroller hvor programtillegget lagrer opplastinger: de må ikke kunne listes i en offentlig mappe og bør helst ikke være tilgjengelige på en adresse som kan gjettes. Slett dem når de er behandlet, eller send dem som vedlegg i stedet for å beholde dem på serveren.
Mange skjemaprogramtillegg eller tilleggene deres lagrer hver innsending i WordPress-databasen, ofte også søppelpost. Det er en nyttig reserve når e-post feiler, men også en voksende haug med personopplysninger. Etter personvernforordningens prinsipp om lagringsbegrensning (art. 5(1)(e)) bør slike opplysninger ikke beholdes lenger enn nødvendig. Avgjør om du trenger lagrede oppføringer, hvilke felt og hvor lenge, og bruk deretter automatisk sletting hvis programtillegget har det, eller slett gamle oppføringer regelmessig. Sikkerhetskopier av databasen inneholder de samme opplysningene.
Etter hver oppdatering
- 1Åpne kontaktsiden i et privat vindu: skjemaet og søppelpostvernet vises riktig, og nettleserkonsollen viser ingen feil.
- 2Se på sidens kildekode: fellefeltet og CAPTCHA-skriptet er fortsatt der, og mottakeradressen er det ikke.
- 3Send en testmelding: den havner i innboksen, ikke søppelpost, og hodefeltene viser bestått SPF, DKIM og DMARC.
- 4Kontroller de viktige innstillingene: mottaker, avsenderadresse, tillatte opplastingstyper og størrelser, hvor lenge oppføringer beholdes.
- 5Kontroller at lenken til personvernerklæringen og eventuell samtykketekst fortsatt vises ved skjemaet.
- 6Noter dato og hva du kontrollerte, slik at du vet når skjemaet sist beviselig virket.
Når dette blir rutine, tar det lite tid og fanger nettopp de stille feilene som ellers forblir ubemerket i ukevis. For et blikk utenfra ser en gratis kontroll på formexposed.com på nettstedets offentlige skjemasider uten å sende inn noe og viser om beskyttelsen du forventer, finnes og er effektivt konfigurert – ingen konto trengs.