Halten Sie die int64-IDs des Tokens als Ziffern, nicht als Zahlen

Fixkamo-register
Verschifft
19. August 2026 um 02:19 UTC
Autor
Kamo
Ausschuss
f760aef

KToken konnte einen echten Token nicht verifizieren. Die vier ids, die es trägt, sind int64s, und die Java Signer (kamo-shared-Bibliothek KToken#canonicalForMac) fügt sich jeder als rohen "long", so dass alle 19 Ziffern gehen in das MAC-Material. Diese Klasse liest sie mit Number(), die vorbeirundet 2-53, und jeder Setter wandte dann "v|0" an -- eine 32-Bit-Abkürzung auf der Oberseite des Rundens. 1168485648209608710 kam als kleiner Integer heraus, der neubegrönte HMAC passte nicht mit einer der Server unterzeichnet, und parseAndVerifyCookie zurückgegeben null: eine gültige Token gelesen als gefälscht. Es stimmte immer nur mit sich selbst überein, auf ids klein genug, um zu vertreten. Die ids sind nun die eigenen Ziffernfolge des Cookie, so dass das Material zum Signer-Bäterbyte passt für ätte und durch Form und nicht durch Number() validiert werden, die die Punkt. Der Ablauf bleibt eine Zahl -- Epochesekunden sind 1,8e9 und in keiner Gefahr. Nichts ruft parseAndVerifyCookie heute; das Cookie wird an die Dienste weitergeleitet wörtlich. Das behebt also eher eine Landmine als einen Ausfall -- aber es ist eine Landmine in einem auth path, wo der Ausfall würde wie ein abgelehntes Login und nicht wie ein Rundungsfehler aussehen. Gleiche Veränderung wie kamo-interne f55a95c9, wo es mutationserprobte Tests trägt: 4 der 6 gegen die vorherige Umsetzung scheitern. Dieses Repo hat keinen Testläufer.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen