Реализация безопасных, уникальных «одноразовых» URL-адресов активации в ASP.NET (C #)
У меня есть сценарий, при котором пользователям сайта, которые я создаю, нужна возможность вводить некоторую основную информацию в веб-форму без необходимости входа в систему. Сайт разрабатывается с использованием ASP.NET/C# и использует MSSQL 2005 для своих реляционных данных.
Пользователям будет отправлено электронное письмо с сайта, содержащее уникальную ссылку для ввода необходимой информации. Электронная почта будет очень похожа на стиль электронной почты, который мы все получаем при регистрации на таких сайтах, как форумы, и содержит случайно сгенерированный уникальный параметр URL-адреса, специально относящийся к одной цели (например, проверка адреса электронной почты для форума).
Мои вопросы касаются безопасного решения этой проблемы. Я рассматривал возможность использования GUID в качестве уникального идентификатора, но не уверен в его влиянии на мир безопасности.
Является ли GUID достаточно длинным, чтобы значения не могли быть легко угаданы (или перебраны со временем)?Является ли реализация .NET GUID достаточно случайной в том смысле, что существует равная вероятность генерации всех возможных значений в «пространстве ключей»?
Если использование GUID является приемлемым подходом, должен ли сайт затем перенаправлять информацию посредством переписывания URL-адреса или связывания информации в базе данных с GUID в качестве ссылки?
Будет ли использование перезаписи URL скрывать истинный источник данных?
Стоит ли использовать TSQL SELECT NEWID () в качестве генератора GUID в реализации .NET?
Я совершенно не прав с моим подходом к этой проблеме?
Большое спасибо,
деревенщина