Skip to content

Archive

Access Control

55 articles
Cybersecurity 04 Sep 2026 8 min read

Authorize Every Object Access

A developer can correctly require login and still expose another user’s data. The mistake is simple: the application proves who made the request, then assumes that identity is enough to access whichever record the request names. Consider an endpoint that returns an invoice by identifier. A signed-in user requests invoice 1842, the application loads invoice 1842, and the response succeeds. If the application never checks whether that user is allowed to read that invoice, changing the requested identifier may cross an authorization boundary.

Cybersecurity 04 Sep 2026 9 min read

Allowlist Writable Fields to Prevent Mass Assignment

An API endpoint may look harmless because it updates only the current user’s profile. The danger can appear one layer lower: if the framework automatically copies every supplied request field into the stored user object, the client may be able to change properties that the interface never intended to expose. For example, a profile request might legitimately accept display_name and timezone. The underlying user record may also contain role, account_status, or billing_limit. If the update path treats every recognized object property as client-writable, authorization decisions made elsewhere can be bypassed through an ordinary update operation.

Cybersecurity 03 Sep 2026 10 min read

Separate High-Risk Actions with Dual Control

Some actions are too consequential to depend on one authenticated account making one correct decision. Deleting a production backup, changing a payment destination, disabling a security control, granting organization-wide administrator access, or rotating a recovery credential can all be legitimate operations. The problem is that a stolen administrator session, a compromised account, or a simple human mistake may turn the same capability into a serious incident. Dual control reduces this risk by separating a sensitive action into at least two independent decisions. One person requests the action, and another authorized person approves it before the system executes it.

Cybersecurity 03 Sep 2026 6 min read

Manage Application Secrets Safely

Applications depend on sensitive values such as API keys, database passwords, signing keys, client secrets, and service credentials. These values often provide direct access to data or privileged operations, so protecting them requires more than keeping them out of source code. Good secrets management controls the entire lifecycle: creation, storage, delivery, use, rotation, revocation, and incident response. Treat secrets as credentials, not configuration A useful distinction is whether disclosure of a value would let an attacker authenticate, decrypt protected information, forge trusted data, or perform privileged actions.

Cybersecurity 03 Sep 2026 10 min read

Limit Bearer Token Damage with Scope and Lifetime

Bearer tokens are convenient because a service can accept a request based on a credential presented with it. That convenience creates a simple security problem: if an attacker obtains a usable bearer token, the attacker may be able to present it too. The receiving service usually cannot distinguish the legitimate holder from a thief merely by possession of the token. The defensive goal is therefore not only to keep tokens confidential. It is also to limit what a stolen token can authorize and how long that authority remains useful. A token that can perform one narrow task for a short period creates a smaller exposure than a long-lived token with broad access.

Cybersecurity 03 Sep 2026 9 min read

Enforce Object-Level Authorization on Every Request

An application can authenticate a user correctly and still expose another user’s data. The failure often happens when an endpoint accepts a resource identifier, loads that resource, and assumes that knowing the identifier is enough to use it. It is not. A resource ID answers which object the client wants. Authorization must separately answer whether this actor may perform this action on that object. This article develops a practical mental model for object-level authorization, shows where checks belong, and explains how to avoid common gaps when applications grow beyond simple owner-only data.

Cybersecurity 02 Sep 2026 6 min read

Apply Least Privilege to Application Access

Least privilege is the practice of giving an identity only the access required to perform its current job. The identity may be a person, application, service account, CI job, or automated process. The principle sounds simple, but useful implementations go beyond creating a few roles. Permissions change over time, applications accumulate capabilities, and emergency exceptions often become permanent. Least privilege therefore needs both careful design and regular maintenance. Start from required actions, not convenient roles A common mistake is to begin with a broad role such as admin, editor, or operator and assign it because it makes an application work quickly.