امنیت فرمها در وب: اعتبارسنجی سمت سرور با zod
اعتبارسنجی سمت کاربر برای تجربهی کاربری است، نه امنیت. با zod دادهی ورودی را روی سرور با یک طرحوارهی واحد بررسی کنید.
هر دادهای که از مرورگر میآید قابلدستکاری است. پس قوانین اصلی باید روی سرور اجرا شوند. کتابخانهی zod این کار را ساده و نوعامن میکند.
تعریف طرحواره
import { z } from 'zod'
export const orderSchema = z.object({
name: z.string().trim().min(3).max(80),
mobile: z.string().regex(/^09\d{9}$/),
budget: z.tuple([z.number().int(), z.number().int()]),
description: z.string().trim().min(20).max(3000),
})استفاده در یک route handler
export async function POST(req: Request) {
const parsed = orderSchema.safeParse(await req.json())
if (!parsed.success) {
return Response.json({ error: 'دادهی ارسالی معتبر نیست' }, { status: 400 })
}
await saveOrder(parsed.data) // اینجا داده تمیز و نوعدار است
return Response.json({ ok: true }, { status: 201 })
}چند لایهی دیگر
محدودیت نرخ (rate limit) برای هر IP
فیلد تله (honeypot) برای رباتها
محدودیت حجم بدنهی درخواست
دیدگاهها
هنوز دیدگاهی نیست؛ نخستین نفر باشید.
دیدگاه خود را بنویسید