- Нет, GUID не являются полностью случайными, и большинство битов являются либо статическими, либо легко угадываемыми.
- Нет, они не случайные, см. 1. На самом деле очень мало битов, которые на самом деле являются случайными, и при этом не криптографически сильными случайными.
- Это не так, см. 1 и 2.
- вы можете, но не нужно ... посмотреть мое решение в конце.
- Нет, см. 1 и 2
- Да.
То, что вы должны использовать вместо GUID, это криптографически сильный генератор случайных чисел - используйте System.Security.Cryptography.RNGCryptoServiceProvider , чтобы генерировать длинную (скажем, 32 байта) строку данных, затем base64 кодировать , что.
Кроме того, если предположить, что это какая-то регистрация с конфиденциальными данными, вам нужно ограничить срок действия ссылки, например, 60 минут или 24 часа - в зависимости от вашего сайта.
Вам нужно будет сопоставить эти значения с конкретными пользователями. Тогда вы можете автоматически представить ему правильную форму по мере необходимости. Не нужно переписывать URL, просто используйте его как идентификатор пользователя (на этой странице).
Конечно, не забудьте, что этот URL должен быть HTTPS ...
Кстати, просто примечание - рекомендуется помещать в электронное письмо какой-либо текст, поясняющий, что пользователи не должны нажимать на ссылки в анонимных письмах, и, как правило, ваш сайт не отправляет, и они никогда не должны вводить свой пароль после нажатия blablabla. ....
О, почти забыл - еще одна проблема, которую вы должны рассмотреть, это то, что происходит, если пользователь хочет отправить ему несколько электронных писем, например, Хиты регистрируются несколько раз. Может ли он делать это снова и снова и получать много действительных URL? Действителен только последний? Или, может быть, одно и то же значение возвращается снова и снова? Конечно, если анонимный пользователь может отправить запрос на это электронное письмо, то может возникнуть проблема с DoS ... не говоря уже о том, что, если он введет свой собственный адрес электронной почты, он может также ввести любой произвольный адрес, наводнив плохую чмо Входящие и, возможно, в результате чего ваш почтовый сервер попал в черный список ...
Ни одного правильного ответа, но необходимо учитывать в контексте вашей заявки.