From 5726b4fa874a93a92938270c4d06609756669ea1 Mon Sep 17 00:00:00 2001 From: Michael Brusegard <56915010+michaelbrusegard@users.noreply.github.com> Date: Wed, 29 Jan 2025 08:32:04 +0100 Subject: [PATCH] feat: implement simple spam protection --- src/actions/sendEmail.ts | 5 +++++ src/components/sections/contact/Contact.tsx | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/actions/sendEmail.ts b/src/actions/sendEmail.ts index f7acdd0..6c9b86f 100644 --- a/src/actions/sendEmail.ts +++ b/src/actions/sendEmail.ts @@ -34,6 +34,11 @@ const rateLimiter = new RateLimiter(5, 120); async function sendEmail(_: FormState, formData: FormData): Promise { try { + const honeypot = formData.get('website') as string; + if (honeypot) { + return { success: true, message: 'Thank you for your message' }; + } + const headerStore = headers(); const clientIp = headerStore.get('X-Real-IP') ?? diff --git a/src/components/sections/contact/Contact.tsx b/src/components/sections/contact/Contact.tsx index ae1d827..08388b2 100644 --- a/src/components/sections/contact/Contact.tsx +++ b/src/components/sections/contact/Contact.tsx @@ -24,6 +24,14 @@ function ContactSection() { Contact.
+