Why Calling Everyone a “User” Undermines Security and Design

The article explains how the vague term “user” leads to flawed requirements, security vulnerabilities such as the Confused Deputy problem, and costly redesigns, urging developers to adopt precise terminology like “traveler”, “agent”, or “member” early in a project.

Liangxu Linux
Liangxu Linux
Liangxu Linux
Why Calling Everyone a “User” Undermines Security and Design

Problem with generic “user” concept

When a system models every participant as a generic “user”, the model often fails to capture distinct business roles, leading to redesign effort and security flaws.

Typical mistakes

The term “user” rarely matches the actual business requirement.

Using a single “user” entity conflates human actors with software identities, creating a confused‑deputy security problem.

Illustrative examples

Ticket‑booking system

Requirements include:

Traveler can view a reservation using a reservation code.

Buyer can modify a reservation by providing the last four digits of a credit‑card.

Travel agency can view and edit its bookings.

Airline staff can edit reservations based on role and passenger ID.

These map to distinct actors – traveler, buyer, agency, airline staff – not a single “user”. Access control should be expressed in terms of these roles and the credentials they present.

Unix/POSIX environment

POSIX defines “users” for login accounts, but the same term is also used for service accounts (e.g., nginx running as httpd), shared admin accounts, and the root account. Because all are labeled “users”, policies such as “only Alice and Bob may log in via this account” become impossible to express without additional attributes.

SaaS multi‑tenant services

In a SaaS product a paying organization (team) may have many members. Treating every person as a “user” prevents a clean separation between the billing entity (team) and the individuals who act on its behalf (members). A proper model distinguishes team (organization, payment, role hierarchy) from member (actual actor).

Security consequences

The ambiguous “user” merges two concepts:

A real person.

The software representation of that person (account, token, process).

This conflation can cause a Confused Deputy situation. For example, a browser running under a system account is treated as the same “user” as the human, allowing malicious web content to perform actions (e.g., file upload) on the user’s behalf.

Value of precise early design

Spending a few hours at project start to define concrete terminology (e.g., traveler, agent, service account, team, member) reduces later redesign, improves security policy expressiveness, and makes the codebase easier to maintain.

Diagram illustrating user model issues
Diagram illustrating user model issues
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

access controlsoftware designTerminologyteam modeling
Liangxu Linux
Written by

Liangxu Linux

Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.