Как скрыть первичный ключ, потому что он мне нужен в URL - PullRequest
0 голосов
/ 11 марта 2020

Я создаю новое приложение Laravel, и мой типичный способ формирования URL-адресов следующий:

/something.{post} //Ex: www.domain.com/something.123

Поскольку Laravel предлагает привязку модели маршрута, я могу использовать 123 для быстро определить соответствующую модель в базе данных.

Мой новый проект не требует, чтобы у меня был увеличивающийся столбец id. Поэтому я рассматриваю возможность использования UUID ИЛИ простой 5-символьной случайной строки с альфа-номером.

Однако, даже с этим новым подходом, я в конечном итоге выставлю свои идентификаторы первичного ключа в URL. Может ли кто-нибудь помочь мне найти способ решения этой проблемы?

Я читал, что Medium использует хешированные идентификаторы в своих URL. Единственный способ решить эту проблему - создать отдельную таблицу, которая сопоставляет мою уникальную строку с целочисленными идентификаторами; так что я могу иметь URL-адреса, такие как -

/something.ds92s

, которые будут внутренне сопоставлены с идентификатором 10 моей модели.

Это правильный путь?

1 Ответ

2 голосов
/ 11 марта 2020

Дополнительно вы можете использовать уникальных слизней. Medium на самом деле использует слагов вместе с хэшированными идентификаторами, добавляемыми в конце для достижения уникальности. Но я не думаю, что разоблачение uuid является большой проблемой безопасности. Представление нормального приращения идентификатора является проблемой, потому что люди могут угадывать идентификаторы и продолжать пробовать разные идентификаторы, чтобы добиться того несчастного случая, который они намерены достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...