- Порезанный
- 20 августа 2026 г. в 14:43 UTC
- Автор
- Kamo
- Обещать
- 5834b1b
Публичный токен был <memberId>.<iteration>, что было неправильно по двум пунктам. Это Опубликован реальный идентификатор участника в каждой ссылке, которой кто-либо поделился - на визитной карточке, в подпись электронной почты в чужом почтовом ящике — и это сделало все пространство ходячие: одна ссылка сказала вам участник, и, считая от 1, перечислил их других кампаний. Конкурент может видеть, сколько кто-то бежит, и любой может Подделать правдоподобный код для члена, которого они никогда не встречали. CODE теперь содержит случайный UUID, а параметр URL - дисконт. Колонна, Его длина и уникальный индекс неизменны, только то, что в нем движется. ITERATION и uq mtc org member iter исчезли. Их единственная работа была секвенирование этого токена и секвенирование - это то, что форсировано max(iteration) + 1 - a две вкладки могут выиграть, что потребовало уникального ограничения, чтобы поймать, повторное восстановление, и это повторное использование в транзакции BRAND-NEW из-за Unique violation отменяет транзакцию, которая произошла на YSQL. Все они существовали Чтобы защитить число, которое никому не нужно. UUID не имеет ничего, чтобы столкнуться; уникальный Индекс CODE остается в качестве поддержки. Токен намеренно по-прежнему является колонкой, а не основным ключом строки. Оба они являются UUID. Сохранение их друг от друга - это то, что делает ссылку переиздаваемой: токен который удаляется, спамится или печатается на неправильном листовке, может быть заменен на месте. в то время как посетители, события и конверсии, уже прикрепленные к ряду, остаются там, где Они есть — и это удерживает идентификатор аутентифицированных адресов API из общедоступных URL-адресов.