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.
Hatalı
Bölüm başlığı “Hatalı”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);}Düzeltme
Bölüm başlığı “Düzeltme”Gevşek == yerine katı === kullanın; gizli karşılaştırmalarında zamanlama-güvenli timingSafeEqual tercih edin.