Первым и наиболее важным шагом является использование какой-либо формы безопасности на основе ролей, чтобы гарантировать, что ни один пользователь не сможет увидеть данные, которые он не должен видеть. Так, например, если пользователь должен видеть только свою собственную информацию, то вам следует проверить, что идентификатор принадлежит вошедшему в систему пользователю, прежде чем отобразить его.
В качестве второго уровня защиты неплохо иметь уникальный ключ, который не позволяет вам предсказывать другие ключи (как вы предлагаете хеш или UUID). Однако это по-прежнему означает, что, например, злоумышленник, который получил чужой URL-адрес (например, прослушивая сеть, читая файл журнала, просматривая историю в чьем-то браузере), мог видеть информацию этого пользователя. Вам нужна аутентификация и авторизация, а не просто запутывание идентификаторов.