Țineți id-urile int64 ale jetonului ca cifre, nu ca numere

Fixkamo-internal
Shipped
19 august 2026 la 02:18 UTC
Author
kamo
Commit
f55a95c

KToken nu a putut verifica un simbol real. Cele patru ID-uri pe care le poartă sunt int64s, și Java signer (kamo-shared-library KToken#canonicalForMac) appends fiecare ca un brut 19 cifre intră în materialul MAC. Această clasă le-a citit cu Numărul (), care runde trecut 2^53, și fiecare setter apoi aplicat 1168485648209608710 a ieșit ca un număr mic, HMAC recombinat nu se potrivește unul serverul semnat, și parseAndVerifyCookie returnat nul: un semn valabil citit ca falsificat. Ea a fost de acord doar cu ea însăşi, pe ID-uri suficient de mici pentru a reprezenta. ID-urile sunt acum propriile cookie-uri de cifre, astfel încât materialul se potrivește semnar octet pentru octet și sunt validate prin formă, mai degrabă decât prin numărul (), care ar învinge punct. Expirarea rămâne un număr -- secundele de epocă sunt de ~1.8e9 şi nu sunt în pericol. Nimic nu cheamă parseAndVerifyCookie astăzi, în oricare dintre cele trei aplicații următoare; cookie-ul este transmise serviciilor verbatim. Deci, acest lucru stabilește o mină de teren mai degrabă decât o pană de curent - dar este o mină de teren într-o cale auth, în cazul în care eșecul ar arata ca o autentificare respinsă Mai degrabă decât un gândac rotunjitor. Noile teste sunt dovedite prin mutaţie: 4 din 6 eşuează împotriva implementării anterioare. Același fix merge la kamo-login și kamo-register, care transportă copii diferite ale acestui fișier cu defectul identic.

All changes

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile