TGViewer
Linuxiz Linuxiz @linuxiz · 1.05K subscribers
Post #1421 209
یک اشتباه به ظاهر ساده در API نویسی که می‌تواند دسترسی ادمین را دودستی تقدیم هکر کند!
(تله Over-Posting)

خیلی از ما وقتی توی دات‌نت شروع به ساخت Controller و Endpointهای API می‌کنیم، برای راحتی کار یا سرعت بیشتر، یک اشتباه کلاسیک انجام میدیم:

ارسال مستقیم Entityهای دیتابیس به ورودی متدها!
[HttpPost]
public async Task<IActionResult> UpdateUser(User user) //
تله بزرگ!

شاید ظاهر قضیه این باشه که Model Binder خودش داده‌ها رو مپ می‌کنه و همه‌چیز سریع کار می‌کنه، اما پشت صحنه چه اتفاقی می‌افته؟

خطر Over-Posting (یا Mass Assignment):

کافیه کلاینت (از طریق Postman یا ابزارهای مشابه) فیلدهایی مثل IsAdmin = true یا WalletBalance رو توی بدنه درخواست JSON بفرسته؛ از اونجا که فریم‌ورک بدون تفکیک، مقادیر رو Bind می‌کنه، دیتای حساس بدون اعتبارسنجی آپدیت میشه!

اصول طلایی یک API تمیز و امن:

همیشه از DTO (Data Transfer Object) استفاده کنیم: فقط فیلدهایی که کاربر مجاز به ارسال یا دریافت اون‌هاست در قالب کلاس‌های سبک تعریف بشن.

قرارداد شفاف (Contract): کلاینت نباید از ساختار جداول دیتابیس و Relationها باخبر بشه؛ API فقط یک پل ارتباطی سبک، مستقل و Stateless است.

اعتبارسنجی دقیق ورودی‌ها (Validation): هیچ داده‌ای از دنیای بیرون نباید بدون فیلتر وارد لایه‌های زیرین بشه.

@Linuxiz
More from @linuxiz
  1. Oct 16, 2026اگه با AI کد می‌زنی، احتمالاً با این مشکل برخورد کردی هرچی پروژه بزرگ‌تر می‌شه و مکالمه طو…
  2. Oct 16, 2026یه اپ برای مدیریت clipboard توی مک. دیگه با خیال راحت چندین چیز رو میشه کپی کرد و انتخاب ک…
  3. Oct 15, 2026این مقاله درباره‌ی یه مدل هوش مصنوعی به اسم VideoJev هستش که هدفش اینه ویدیو رو بفهمه، اتف…
  4. Oct 15, 2026نسخه جدید Jev ترکونده! توی ورژن ‌جدید 1.14 پشتیبانی از تصاویر هم بهش اضافه شده ولی فعلا کم…
  5. Oct 15, 2026از ساعاتی پیش دیپ سیک ورژن 4.1 روی اوپن کد رایگان شده. این دیپ سیک 4 واقعا توی کد زدن محشر…
  6. Oct 15, 2026پونصد‌ میلیون توکن رایگان برای استفاده از مدل های زیر : DeepSeek V4 Qwen3.8-27B GLM-5.3 آد…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →