Реализация безопасных, уникальных «одноразовых» URL-адресов активации в ASP.NET (C #)

У меня есть сценарий, при котором пользователям сайта, которые я создаю, нужна возможность вводить некоторую основную информацию в веб-форму без необходимости входа в систему. Сайт разрабатывается с использованием ASP.NET/C# и использует MSSQL 2005 для своих реляционных данных.

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

Мои вопросы касаются безопасного решения этой проблемы. Я рассматривал возможность использования GUID в качестве уникального идентификатора, но не уверен в его влиянии на мир безопасности.

Является ли GUID достаточно длинным, чтобы значения не могли быть легко угаданы (или перебраны со временем)?

Является ли реализация .NET GUID достаточно случайной в том смысле, что существует равная вероятность генерации всех возможных значений в «пространстве ключей»?

Если использование GUID является приемлемым подходом, должен ли сайт затем перенаправлять информацию посредством переписывания URL-адреса или связывания информации в базе данных с GUID в качестве ссылки?

Будет ли использование перезаписи URL скрывать истинный источник данных?

Стоит ли использовать TSQL SELECT NEWID () в качестве генератора GUID в реализации .NET?

Я совершенно не прав с моим подходом к этой проблеме?

Большое спасибо,

деревенщина

Ответы на вопрос(6)

Ваш ответ на вопрос