Re: Using PK value as a String

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bill Moran wrote:
In response to Steve Atkins <steve@xxxxxxxxxxx>:

On Aug 12, 2008, at 8:21 AM, Bill Moran wrote:

In response to Moritz Onken <onken@xxxxxxxxxxxxxxxx>:

Am 12.08.2008 um 17:04 schrieb Bill Moran:

In response to Moritz Onken <onken@xxxxxxxxxxxxxxxx>:

We chose UUID as PK because there is still some information in an
integer key.
You can see if a user has registered before someone else (user1.id <
user2.id)
or you can see how many new users registered in a specific period of
time
(compare the id of the newest user to the id a week ago). This is
information
which is in some cases critical.
So you're accidentally storing critical information in magic values
instead of storing it explicitly?

Good luck with that.
How do I store critical information? I was just saying that it easy
to get some information out of a primary key which is an incrementing
integer. And it makes sense, in some rare cases, to have a PK which
is some kind of random like UUIDs where you cannot guess the next value.
Interesting. Ordered chronologically and the next value is unguessable.

I just repeated your words. Read above "this is information which is in
some cases critical."

If I misunderstood, then I misunderstood.

I think Moritz is more concerned about leakage of critical information,
rather than intentional storage of it. When a simple incrementing integer
is used as an identifier in publicly visible places (webapps, ticketing
systems) then that may leak more information than intended.

I think there are better ways to accomplish this than encoding and decoding/decrypting a PK. Store the sensitive data in a session variable or store session data in the database neither of which is accessible to users.

It is usually a big mistake to de-normalize a table by encoding several fields in a single column PK or not. If you want to do something with the encoded data such as find one or more rows with an encoded value then you will have to inspect every row and decode it and then compare it or add it or whatever.



Then I did misunderstand.



--
H. Hall
ReedyRiver Group LLC
http://www.reedyriver.com



[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux