Phase 6 hardening: authentication, multi-user, and CSRF protection #25
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Every reader route acts as a hard-coded
user_id = 1(annotated# Phase 6 will add multi-user), there is no authentication or session layer, and all state-changing POST routes (article read/unread, aggregate mark-read, feed add/delete, tag management) accept requests without any CSRF protection. Any client that can reach the server can mutate data on behalf of the default user. WuMing raises this on every PR that touches a state-changing route (latest: PR #24), and each occurrence is declined as project-level work — this issue is where that work belongs.Goal
Findings
userstable +Usermodel +db/users.pyaccessors exist, andread_statusis keyed by(user_id, article_id). The gap is routes/sessions, not schema.user_id = 1; missing CSRF) — declined there as project-level, to be tracked here.Plan of attack
user_id = 1.