ا owasp یه سری استاندارد امنیتی داره که برای داشتن برنامه امن باید رعایت کنیم.
1.
Broken Access Control 🔓
وقتی یه نفر نباید به چیزی دسترسی داشته باشه، ولی میتونه سرک بکشه.
مثال: توی یه سایت خرید، شما نباید بتونید سفارشهای بقیه رو ببینید، ولی اگر لینک سفارش کسی رو داشته باشی و بدون رمز باز بشه، این یه مشکل کنترل دسترسیه.
2.
Cryptographic Failures 🔐
وقتی اطلاعات حساس درست قفل نشده باشه.
مثال: سایتی که اطلاعات بانکی شما رو ساده ذخیره کنه (مثلاً: 1234 5678 9012 3456) یا به جای HTTPS از HTTP استفاده کنه.
3.
Injection 💉
وقتی هکر بتونه کدهای خودش رو بفرسته توی برنامه شما و اجراش کنه. مثل حملات sql/ shell injection
4.
Insecure Design 🏗️
وقتی از اول سیستم رو اشتباه طراحی کرده باشی و امنیت توش لحاظ نشده باشه.
مثال: اپلیکیشنی که پسوردهای کاربرا رو بدون محدودیت طول و پیچیدگی قبول میکنه، مثل اینکه یکی پسوردش رو 1234 بذاره.
5.
Security Misconfiguration ⚙️
وقتی تنظیمات سایت یا سرور درست انجام نشده باشه.
مثال: یه وبسایتی که به همه اجازه بده فایلهای سرورش رو ببینن (مثلاً /config/settings رو باز کنی و اطلاعات حساسی ببینی).
6.
Vulnerable and Outdated Components 🧩
وقتی از نرمافزارها یا کتابخونههای قدیمی استفاده کنی که مشکل امنیتی دارن.
7.
Identification and Authentication Failures 🔑
وقتی سیستم درست کاربر رو تشخیص نمیده یا روش لاگینش امن نیست.
مثال: سایتی که پس از چند بار تلاش اشتباه برای لاگین، حساب رو قفل نمیکنه و هکر میتونه هزار بار امتحان کنه تا رمز رو حدس بزنه.
8.
Software and Data Integrity Failures 🛠️
وقتی دادهها یا بهروزرسانیها امن نیستن و قابل تغییرن.
مثال: یه اپلیکیشن که آپدیتهای خودش رو از منابع غیرقابل اعتماد بگیره و هکر بتونه تو اون آپدیت کدهای مخرب بذاره.
9.
Security Logging and Monitoring Failures 📋
وقتی سیستم نتونه اتفاقات مشکوک رو ثبت و پیگیری کنه.
مثال: هکری که وارد سایت بشه و کسی متوجه نشه چون سیستم ثبت وقایع نداره.
10.
SSRF 🕵️
وقتی هکر سرور رو مجبور کنه که به جای اون، درخواست ارسال کنه.
مثال: کاربر باید URL تصویر را وارد کند:
https://example.com/image.jpg.
هکر به جای URL معمولی، یک آدرس داخلی وارد میکند:
http://localhost/admin.
چون این درخواست از طرف سرور میاد، ممکنه به اطلاعات حساس مثل پنل ادمین دسترسی پیدا کنه.