تكرار السؤال: …
الإجابة المختصرة
يضمن مطابقة البيانات القادمة من العميل للأنواع والقيود المتوقعة قبل وصولها لمنطق الأعمال، ويمنع هجمات حقن البيانات والتلاعب بالحقول.
الشرح
الاعتماد على افتراض صحة مدخلات req.body هو السبب الرئيسي لمعظم الثغرات والأخطاء. توفر مكتبات مثل Zod إمكانية استنتاج أنواع TypeScript (Inferred Types) ومزامنتها تلقائياً مع قواعد التحقق وقت التشغيل (Runtime Validation)، ورفض الطلبات غير المطابقة برمز 400 وتفاصيل واضحة للعميل.
مثال بالكود
import { z } from "zod";
const userSchema = z.object({
email: z.string().email(),
age: z.number().min(18)
});
const parsed = userSchema.parse(req.body); // يرمي خطأ إذا لم يطابقأخطاء شائعة
- الاعتماد على أنواع TypeScript وحدها للتحقق، متناسين أن TypeScript تُمحى تماماً وقت التشغيل.