Rate limiting and vote spam prevention #14

Open
opened 2026-04-29 03:55:22 +00:00 by TopherMayor · 0 comments
Owner

Problem

A malicious or drunk groomsman could spam votes or flood the app with submissions. There's no abuse prevention.

Proposed Solution

  • Server-side: max 1 vote per 2 seconds per IP + voterName combo
  • Max 10 new option submissions per IP per hour
  • Client-side: disable vote button for 1s after casting (prevent double-tap)
  • Rate limit responses return HTTP 429 with a friendly message

Acceptance Criteria

  • Rapid-fire votes are blocked server-side (HTTP 429)
  • Client shows "Please wait…" on vote button for 1s after vote
  • Mass option submission is rate-limited
  • Rate limit messages are friendly, not technical
## Problem A malicious or drunk groomsman could spam votes or flood the app with submissions. There's no abuse prevention. ## Proposed Solution - Server-side: max 1 vote per 2 seconds per IP + voterName combo - Max 10 new option submissions per IP per hour - Client-side: disable vote button for 1s after casting (prevent double-tap) - Rate limit responses return HTTP 429 with a friendly message ## Acceptance Criteria - [ ] Rapid-fire votes are blocked server-side (HTTP 429) - [ ] Client shows "Please wait…" on vote button for 1s after vote - [ ] Mass option submission is rate-limited - [ ] Rate limit messages are friendly, not technical
TopherMayor added the backendpriority/medium labels 2026-04-29 03:55:22 +00:00
TopherMayor added this to the UI/UX Overhaul v1.0 milestone 2026-04-29 03:56:15 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TopherMayor/cabo-voting-app#14