Рекомендации по использованию смешанных символов и целочисленных идентификаторов в веб-приложениях

Я занимаюсь разработкой веб-приложения, в котором мне нужно идентифицировать определенную страницу, используя идентификатор.

Обычно я использую интергер с автоматическим приращением, который относится к идентификатору элемента в БД.

Вот так например: http://example.com/item/1

Но я вижу все больше и больше таких идентификаторов (TinyUrl и YouTube): http://example.com/item/1BHYQJh1

И мне интересно, я должен пойти на это решение?

В чем выгода, это просто укоротить ID в случае, если вы получаете действительно длинное интергер?

Или это "взломать" доказательство, чтобы люди не могли "угадать" URL, заменив 1 на 2.

Я действительно ценю последнее, я хотел бы добавить эту дополнительную безопасность для моего приложения. Но кто-нибудь знает какие-либо фрагменты кода, которые делают именно это?

Примеры в C# были бы отличными.

2 ответа

Это не проблема программирования, но...

Я предпочитаю "хорошие" URL-адреса, и я не одинок, и для меня простые цифры лучше, чем 1BHY..., но YMMV.

Упомянутое вами "предположение" здесь не имеет значения. Если пользователю разрешен доступ к /2, это не имеет значения. Если он не разрешен, то основывать безопасность на непонятных URL - плохой выбор. Что если кто-то введет неправильное значение и наткнется на страницу, не предназначенную для него.

Если вам нужна безопасность, вам нужно проверить, разрешен ли текущему пользователю доступ к странице по указанному URL, и действовать соответствующим образом.

Я не понимаю, что означают "примеры в C#". Это URL, они не выражены в C#.

Вы можете использовать Guid.NewGuid(), чтобы создать "уникальный" идентификатор

Является ли GUID уникальным в 100% случаев?

Другие вопросы по тегам