Generalising this: you don't need stateful logged-in authentication to defeat IDOR, you can include a system-specific HMAC in the construction of a shared identifier, optionally incorporating time or other scoping semantics as necessary.
This tends to make identifiers somewhat longer but still well inside the scope of an email'd URL to download your bill without having to dig up what your telco password was.
a fun retail banking variation of this misadventure is (1) someone designs an elegant RESTful API for doing something or other (2) and it gets applied to credit cards, where the credit card number is used as the natural primary key and is RESTfully embedded in URLs, which people endeavour to avoid logging, but then when you (3) integrate middleware to report metrics to some SaaS monitoring platform, the end result is that you're spraying all your customers credit card numbers into the monitoring platform
lmm•36m ago
magnio•32m ago