theluckystrike

The permissions that are safe by construction

Most discussion of browser extension permissions is about the dangerous end of the range. The safe end is more useful to know, because it tells you what a well-built extension looks like.

At the bottom of the risk scale sit storage.session at 5, downloads.shelf at 5, alarms at 6, and storage.managed at 7. What these share is that they are either scoped to the extension itself or read-only against policy the user's administrator already set.

storage.session is the clearest example. It holds data only in memory and clears when the browser closes, so there is no persistent record to leak later. An extension that keeps its state there instead of in persistent storage has made a deliberate choice to hold less.

activeTab at 8 belongs in the same conversation. It grants page access only after an explicit user click and revokes automatically. Compare that with tabs at 72, which reads every open tab continuously. Both let an extension act on a page; only one is gesture-gated.

The signal worth reading is substitution. When an extension uses the narrow API where a broad one would also have worked, that is evidence of care, and it is visible in the manifest without running anything.

Permission scores and rationale: zovo.one