Безопасно ли, чтобы столбец ID был просто целым числом (автоинкремент)? - PullRequest
0 голосов
/ 11 января 2020

У меня есть таблица, которая состоит из идентификатора (уникального) и такой информации, как имя, адрес электронной почты, роль и т. Д. c. Я планирую сделать мой идентификатор просто целочисленным с автоматическим приращением. Этот идентификатор будет помещен в сеанс и будет использоваться для получения определенного доступа и запроса определенных вещей, связанных с указанными идентификаторами. Безопасно ли это делать, или я должен сделать свой идентификатор более случайным?

Меня беспокоит то, что кто-то может связываться с сеансом и изменять идентификатор (поскольку идентификатор представляет собой целое число с автоинкрементом, он будет быть легко закаленным) и иметь доступ к данным других людей. Это вообще возможно?

1 Ответ

0 голосов
/ 12 января 2020

Вы можете выбрать идентификатор как UUID - универсальный уникальный идентификатор. Многие базы данных поддерживают его, и вы можете сгенерировать его, используя стандартную библиотеку Java. Это строка, а не число и достаточно случайная, чтобы ее было трудно угадать. Позже, если вам когда-нибудь понадобится объединить 2 таблицы, в схеме вы не увидите никакого конфликта.

Единственным недостатком этого индекса является то, что индекс будет немного менее эффективным, потому что это большая строка, но я выберу ее из-за других преимуществ.

...