TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.2K subscribers
Post #13267 5.82K
یک اشتباه به ظاهر ساده در 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): هیچ داده‌ای از دنیای بیرون نباید بدون فیلتر وارد لایه‌های زیرین بشه.

@DevTwitter | <Ehsan Faramarzi/>
  • 👍 26
  • ❤ 8
  • 🍌 6
More from @devtwitter
  1. Sep 26, 2026من از کودکی همیشه از کار با TUIها شگفت‌زده می‌شدم. این claude-cli هم همیشه برام جالب بوده…
  2. Sep 26, 2026این پروژه یه سرویس کامل برای راه‌اندازی Meet و Webinar. میتونی پلن های مختلف با محدودیت ها…
  3. Sep 26, 2026🔥 بین مدل ML و یه محصول واقعی، یه مسیر مهم وجود داره: MLOps. ✔️ ساختن یه مدل خوب تازه شرو…
  4. Sep 26, 2026یجا درمورد dsl خوندم یاد dsl خودم افتادم که تو عصر gpt-4o ساختم برای tool call های موازی و…
  5. Sep 26, 2026Post #13342
  6. Sep 26, 2026کدهای پرشتاب | Go؛ از یک ترند تازه تا رقابت با زبان‌های بزرگ💥 📍ایونت آنلاین و رایگان اخی…
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 →