Если вы так много делаете для GUID, почему бы просто не использовать GUID для идентификации самого объекта, который фактически хранится в базе данных (хотя я бы посоветовал против этого )?
Или у вас может быть схема шифрования на стороне сервера, которая шифрует, а затем расшифровывает идентификатор (это длинные те же строки, что и вы, за исключением того, что вы не сохраняете ничего случайного в этом сеансе (yuck:)).
Вы можете даже забыть попытаться сделать это вообще, поскольку много сайтов "затронуты" этой проблемой, и это, очевидно, не проблема (например, StackOverflow).Затраты слишком велики.
Кроме того, если вы беспокоитесь о безопасности, почему бы вам не установить какие-то гранулярные разрешения, установленные на уровне отдельного действия / даже объекта.Это также решит некоторые проблемы.
РЕДАКТИРОВАТЬ:
Другая проблема с вашим решением - несовместимые уникальные идентификаторы.Если пользователь говорит: «ID as23423he423fsda содержит« недопустимые »данные», как вы узнаете, к какому идентификатору он принадлежит, если он меняется при каждом запросе (если вы также собираетесь изменить идентификатор в URL)?Вы были бы на намного лучше с алгоритмом шифрования, который всегда хеширует одно и то же значение, поэтому вы можете легко выполнить поиск (если вам это нужно), а также у пользователя есть согласованные идентификаторы.