> A short compromised session is still a compromised session. The duration usually does not prevent the attacker from achieving their goal.
I'm a bank robber, I want to steal your money without you knowing so I'm not caught.
What would be a better way to do that? Withdraw $1000 immediately or to spread out that withdrawal over several months.
A short token forces the $1000 withdraw immediately. And one common way these tokens are compromised is a scammer getting Grandma to open the developer console so they can "fix" things.
> The vast majority of ways to compromise a session already give you access far beyond that session itself (ex: you have user access on a local machine, or physical hardware access, or you're an admin who manages that user, etc/etc/etc). So an expired session is, at most, a small speed bump in those cases.
Or you are employing the common scam above, screen sharing under the guise of helping.
Granted, some of the calculus needs to be "what type of app is this? What does compromise mean?".
> The most secure application runs completely isolated, with no input or output, and is totally, utterly useless. But no worries - it's secure!
I didn't take this as what the op was saying.
Security works in layers and good security imagines that other layers don't exist or might have been compromised. In your ship analogy, that's adding a second hull, putting airtight sections between hull locations, and having lifeboats.
You wouldn't eject the lifeboats because "we have two hulls, what could go wrong!"
The actual cost of doing this is generally developer time.
There are certainly practicality limits, but in general a layered approach to security is how you both increase security and decrease compromise impact.