feat(#79): Add rate limiting to contact page form

This commit is contained in:
Josh Creek
2024-11-10 19:45:40 +00:00
parent 6cdc0f0bde
commit 829d8cc031
2 changed files with 38 additions and 0 deletions
+8
View File
@@ -3,9 +3,17 @@ import { fail } from '@sveltejs/kit';
import { sendEmail } from '$lib/utils/brevo/email';
import { VITE_CONTACT_EMAIL } from '$env/static/private';
import logger from '$lib/utils/logger/logger';
import { isRateLimited } from '$lib/utils/rateLimiter';
export const actions: Actions = {
default: async ({ request }) => {
const ip =
request.headers.get('x-forwarded-for') ?? request.headers.get('remote-addr') ?? 'unknown';
if (isRateLimited(ip)) {
return fail(429, { error: 'Too many requests. Please try again later.' });
}
const formData = await request.formData();
const name = formData.get('name') as string;
const email = formData.get('email') as string;