News for hackers. Stuff that matters.
Re:Design better databases by irl_zebra on Thursday April 07, 2016 @04:41PM (#11450529)
Why should UUIDs not be exposed to users? Because of the their unwieldy look, or because of security concerns?

I ask because I have an app where previously I was accessing a particular data point via pk, and the user saw the pk in the url bar. But it could expose user/site data as any user could access that pk, or just guess at the next sequentially generated pk. I switched to uuid and now it's a little ugly in the url bar, but no data is exposed.

Re:Design better databases by ww520 on Thursday April 07, 2016 @04:50PM (#11450611)
I meant the key handed off to the user for human interaction. As a user I would prefer order number 7356 than 7458e3a9-716b-4352-b2e4-b5b67d0c089b.

If there's no human interaction with the key, UUID is perfectly fine.

Re:Design better databases by mhd on Friday April 08, 2016 @03:32AM (#11453152)
I've seen scenarios where UUIDs were used intentionally for this, to prevent users who get a full export of table data to reference the UUID. If it's just a sequence of small integers they might them to more permanent and intrinsically tied to the data, whereas UUIDs seem more like computing artifacts.

Yeah, I know, this could easily fixed by not friggin' showing surrogate keys to those users in the first place, but, well, data integration is ugly business.

Re:Design better databases by irl_zebra on Thursday April 07, 2016 @07:10PM (#11451433)
Gotcha, just wanted to make sure I wasn't missing something. Makes total sense, thanks!
Re:Design better databases by radagast on Friday April 08, 2016 @04:29AM (#11453338)
> But it could expose user/site data as any user could access that pk, or just guess at the next sequentially generated pk.

Using a UUID instead of a sequentially rolling integer ID isn't solving your problem, you're just doing security through obscurity. The real solution is implementing real authentication & authorization - not making the key harder to guess.

Re:Design better databases by naasking on Friday April 08, 2016 @10:37AM (#11454895)
> Using a UUID instead of a sequentially rolling integer ID isn't solving your problem, you're just doing security through obscurity.

A common sentiment, but not true if your id is cryptographically random. It amounts to capability security which is the right approach to security if used comprehensively.