Dakini / Dakini/ai-dev-projects

Rate limiting / brute-force protection on login attempts

Open
#28 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

post-mvp
Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Goal

Repeated failed login attempts against a single account or from a single client are throttled, so the login form isn't trivially brute-forceable.

Acceptance criteria

  • After some threshold of failed login attempts (for a given username and/or source IP) within a time window, further attempts are rejected with a clear message rather than continuing to check the password — the exact threshold/window is a decision for whoever picks this up.
  • Legitimate users are not locked out indefinitely by a burst of their own typos (the throttle window expires or is otherwise recoverable without manual intervention).

Out of scope

  • Nothing identified yet.

Constraints

  • No new dependency may be added without asking first, per AGENT.md — this includes any third-party throttling/rate-limit package; evaluate whether Django's own tooling (e.g. cache-based counters) is sufficient before proposing one.
  • Split out of #3 (registration/login/logout): the plan's MVP scope for #3 deliberately did not include brute-force protection, since this is an internal small-team tool with no public signup funnel, but it shouldn't be silently dropped forever — hence this follow-up.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read AGENT.md first, then inspect the existing login form and Django's cache-based tooling before choosing a counter strategy. Decide and document the threshold and time window, ensure throttling expires without manual intervention, and verify that blocked attempts receive a clear message without continuing password checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
authentication, backend, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.