OWASP Top 102 دقیقه مطالعه
OWASP Top 10 چیست؟
OWASP Top 10 فهرست ده آسیبپذیری امنیتی پرتکرار برنامههای وب است که مرجع استاندارد صنعت محسوب میشود.
چرا مهم است؟
در آگهیهای Mid/Senior .NET بهعنوان معیار «آشنایی با اصول امنیت» پرسیده میشود؛ نادیده گرفتن آن هزینهٔ واقعی امنیتی دارد.
چند مورد پرتکرار
- Injection (مثل SQL Injection): ورودی کاربر مستقیم در Query ترکیب شود. راهحل: پارامتریسازی (Parameterized Query) و Stored Procedure.
- Broken Authentication: مدیریت ضعیف رمز عبور/نشست. راهحل: هش رمز عبور (PBKDF2/bcrypt)، انقضای Token، 2FA.
- XSS (Cross-Site Scripting): تزریق اسکریپت مخرب در صفحه از طریق ورودی کاربر. راهحل: Encode کردن خروجی HTML.
- CSRF: اجرای عملیات ناخواسته از طرف کاربر لاگینشده توسط سایت مخرب دیگر. راهحل: Anti-Forgery Token.
- Security Misconfiguration: تنظیمات پیشفرض ناامن (مثلاً نمایش Stack Trace کامل در Production).
مثال جلوگیری از SQL Injection در .NET
// ناامن: مستقیم Concatenate کردن ورودی کاربر
var sql = $"SELECT * FROM Users WHERE Email = '{email}'";
// امن: پارامتریشده
var sql = "SELECT * FROM Users WHERE Email = @Email";
command.Parameters.AddWithValue("@Email", email);
اشتباه رایج
❌ اعتماد به ورودی سمت کلاینت (فرض کردن که چون فرم HTML مقدار را محدود کرده، سمت سرور نیازی به اعتبارسنجی نیست). ✅ همیشه اعتبارسنجی و Sanitize روی سرور انجام شود؛ کلاینت فقط یک لایهٔ تجربهٔ کاربری اضافه است.
خلاصه
OWASP Top 10 پرتکرارترین آسیبپذیریهای امنیتی وب را فهرست میکند؛ SQL Injection و XSS با پارامتریسازی و Encode کردن خروجی قابل پیشگیریاند؛ اعتبارسنجی سمت سرور همیشه اجباری است، حتی اگر کلاینت هم اعتبارسنجی کند.
حالا امتحان کن
🧩آزمون مبانی امنیت وب و OWASP3 سؤال · نمره قبولی 60٪این مطلب مفید بود؟
☆نشان کردن