- Expédié
- 20 août 2026 à 14:43 UTC
- Auteur
- Kamo
- Commite
- 5834b1b
Le jeton public était 'memberid'. itération, ce qui était faux sur deux points. Il a publié un membre réel id dans chaque lien que l'on partage - sur une carte de visite, en une signature par e-mail, dans la boîte de réception de quelqu'un d'autre - et cela a fait tout l'espace , un lien vous a dit le membre, et compter à partir de .1 énuméré leur d'autres campagnes. Un concurrent pourrait voir combien de gens court, et n'importe qui pourrait forger un code plausible pour un membre qu'ils n'avaient jamais rencontré. CODE détient maintenant un UUID aléatoire et le paramètre URL est ?discount. La colonne, sa longueur et son indice unique sont inchangés; seulement ce qui y va se déplaçait. L'ITERATION et l'on s'en vont. Leur seul travail a été séquençage de ce jeton, et séquençage est ce que le max(itération) forcé est supérieur ou égal à 1 a. lire-alors-write deux onglets peuvent tous deux gagner, ce qui nécessitait une contrainte unique pour attraper, a réessayer de récupérer, et qui réessai dans une transaction MARQUE-NEW parce qu'a unique - la violation avorte la transaction dans laquelle elle s'est produite sur YSQL. Tout cela existait pour défendre un nombre dont personne n'a besoin. Un UUID n'a rien à faire pour entrer en collision; l'unique L'indice sur le CODE reste en tant que filet de sécurité. Le jeton est délibérément encore une colonne plutôt que la clé primaire de la ligne, même Bien que les deux soient des UUID. Les séparer est ce qui rend un lien revérable: un jeton qui est raclé, spammé ou imprimé sur le mauvais dépliant peut être remplacé en place tandis que les visiteurs, les événements et les transformations déjà attachés à la rangée séjournent où Ils sont - et il maintient l'identifiant des adresses API authentifiées des URL publiques.