İçeriğe geç

Gevşek tür karşılaştırması (ARCH3138)

Anahtar typescript.security.loose-type-comparison · Önem warning · Kategori security · CWE CWE-697

Token, hash veya parola gibi güvenlik açısından kritik değerlerde tür zorlamalı gevşek eşitlik (==) kullanmak, tür dönüşümü sayesinde kimlik doğrulama atlatmaya yol açabilir. Her zaman katı eşitlik kullanın.

function verifyToken(provided: string, expected: string) {
return provided == expected;
}
import { timingSafeEqual } from "crypto";
function verifyToken(provided: string, expected: string) {
const a = Buffer.from(provided);
const b = Buffer.from(expected);
return a.length === b.length && timingSafeEqual(a, b);
}

Gevşek == yerine katı === kullanın; gizli karşılaştırmalarında zamanlama-güvenli timingSafeEqual tercih edin.