A
Aysel MəmmədovaMüəllif
aysel.mammadova@example.comZod ilə Runtime və Compile-Time Məlumat Təhlükəsizliyi
İstifadəçi məlumatlarının serverə daxil olarkən təhlükəsiz sanitarizasiyası, validasiyası və tip çıxarışının təşkili.
Bir çox yeni başlayan tərtibatçı belə düşünür: "Mən TypeScript istifadə edirəm, deməli tətbiqim tam təhlükəsizdir və səhv məlumat daxil ola bilməz". Bu, çox təhlükəli bir mifdir!
TypeScript yalnız kod yazılarkən (compile-time) mövcuddur. Brauzer kodu işə salanda TypeScript tamamilə silinir və adi JavaScript qalır. Xaricdən gələn hər hansı bir API sorğusu və ya forma məlumatı (JSON / FormData) hər cür zərərli və ya yolverilməz dəyər daşıya bilər.
📌 1. Zod Sxemləri Nədir?
Zod JavaScript işləyərkən (runtime) məlumatları real şəkildə yoxlayan bəyannamə tipli (declarative) validasiya kitabxanasıdır.
Biz tək bir yerdə qaydaları təyin edirik:
export const loginSchema = z.object({
email: z.string().trim().toLowerCase().email("Düzgün e-poçt daxil edin"),
password: z.string().min(8, "Ən azı 8 simvol olmalıdır"),
});
📌 2. 'z.infer' ilə Tək Mənbə (Single Source of Truth)
Ən gözəl cəhət odur ki, siz eyni sahələr üçün ayrıca TypeScript 'interface' yazmırsınız. Zod sxemindən avtomatik tip çıxarılır:
export type LoginInput = z.infer<typeof loginSchema>;
Sxemi dəyişən kimi, TypeScript tipi də saniyə içində avtomatik yenilənir.
📌 3. 'safeParse()' İstifadəsi
Server Actions və API daxilində heç vaxt proqramı çökdürən 'parse()' metodundan istifadə etməyin. Həmişə 'safeParse()' çağırın:
const result = loginSchema.safeParse(formData);
if (!result.success) {
return { fieldErrors: result.error.flatten().fieldErrors };
}
Bu yanaşma istifadəçiyə dərhal hansı sahədə xəta olduğunu sahə-sahə bildirməyə və sistemin sabit qalmasına zəmanət verir.
←Bütün yazılara qayıtKateqoriya: Best Practices