Secure Coding1 دقیقه مطالعه
Secure Coding چیست؟
مجموعهای از عادتها و اصول نوشتن کد که از ابتدا آسیبپذیریهای رایج را حذف میکند، بهجای اینکه امنیت را بعداً به کد اضافه کنیم.
چرا مهم است؟
اضافهکردن امنیت بعد از اتمام یک ویژگی معمولاً گران و ناقص است؛ عادات Secure Coding از همان لحظه نوشتن اولین خط، دسته بزرگی از باگهای امنیتی را اصلاً امکانپذیر نمیکند.
اصول کلیدی
- اعتبارسنجی هر ورودی خارجی: فرم، Query String، هدر HTTP، فایل آپلودی — همه باید قبل از استفاده بررسی شوند.
- کمترین دسترسی لازم (Least Privilege): یک سرویس یا کاربر فقط به منابعی که واقعاً لازم دارد دسترسی داشته باشد.
- عدم اعتماد به داده سمت کلاینت: هر بررسی مهم (قیمت، دسترسی، مقدار) باید در سرور تکرار شود، چون داده کلاینت قابل دستکاری است.
مثال (داتنت)
// ناامن: اعتماد به قیمت ارسالی از کلاینت
order.Total = request.Total;
// امن: محاسبه قیمت مجدد در سرور از روی داده معتبر دیتابیس
order.Total = await _pricingService.CalculateAsync(request.Items);
اشتباه رایج
❌ فکر کردن که چون فرانتاند یک فیلد را غیرقابلتغییر (Disabled/Readonly) کرده، از سمت سرور هم امن است — هر درخواست HTTP قابل دستکاری با ابزارهایی مثل Postman است؛ محدودیت واقعی همیشه باید در سرور اجرا شود.
منبع و مطالعه بیشتر
خلاصه
Secure Coding یعنی اعتبارسنجی هر ورودی، کمترین دسترسی لازم و عدم اعتماد به داده کلاینت از همان ابتدای نوشتن کد. هیچ محدودیت مهمی نباید فقط سمت کلاینت اجرا شود. مرجع کامل: راهنمای OWASP Secure Coding Practices.
این مطلب مفید بود؟
☆نشان کردن