▲ | dietr1ch 12 hours ago | |||||||
The actual concern is privacy. Privacy wise, - Knowing sequential IDs leaks the rate of creation and amount of said entity which can translate in number of customers or rate of sales. - Knowing timed IDs leaks activity patterns. This gets worse as you cross reference data. - Random IDs reveal nothing. --- Security wise, - Sequential IDs can be guessed. Performance wise, - Sequential IDs may result in self-inflicted hotspots.
- Random IDs lends themselves to sharding, but make indexing, column-compression, and maintaining order after inserts hard. | ||||||||
▲ | bearjaws 11 hours ago | parent | next [-] | |||||||
- Knowing sequential IDs leaks the rate of creation and amount of said entity which can translate in number of customers or rate of sales. This implies the existence of an endpoint that returns a list of items, which could by itself be used to determine customers or rate of sales. This also means you have a broken security model that leaks a list of customers or list of sales, that you should probably not have access to begin with. - Knowing timed IDs leaks activity patterns. This gets worse as you cross reference data. Again if you can list items freely you can do this anyway, capture what exists now and do diffs to determine update times and creation times. | ||||||||
| ||||||||
▲ | jrockway 11 hours ago | parent | prev [-] | |||||||
Why leak your primary keys? They are for the DBMS, not your end users. | ||||||||
|