SQL Injection: الـ input اتلزق في الـ queryparameterized queries (
$1). والـ input داتا عمره ما يبقى نص SQLORDER BY أو اسم عمود من المستخدمallow-list لقيم ثابتة
XSS: سكريبت بيشتغل في صفحتكescape لكل output، و DOMPurify قبل أي HTML خام
لينك من المستخدم في hrefاسمح بـ
https: و http: بسعايز طبقة تانية ضد XSSContent-Security-Policy من غير
unsafe-inlineCSRF: موقع تاني بيبعت بالـ cookie بتاعتك
SameSite cookies + anti-CSRF token على كل تغييرGET بيغيّر داتاخليه POST أو PUT أو DELETE
SSRF: السيرفر بيعمل fetch لأي URLallow-list للـ hosts، بلوك للـ IPs الداخلية، ومن غير redirects
metadata الـ cloudIMDSv2 وبلوك 169.254.169.254
IDOR: غيّر الـ ID شوف داتا غيركشرط الملكية جوه كل query، و 404 لو مش بتاعه
userId أو role جاي في الـ bodyخده من الجلسة، و allow-list للحقول
Path Traversal:
../ في اسم الملفpath.resolve واتأكد إنه جوه الـ ROOT، أو IDs بدل أسماءWeak Login: تخمين وباسوردات مسربةMFA + rate limit لكل IP ولكل حساب + argon2
رسالة الـ login بتقول الإيميل مش موجودرسالة واحدة للحالتين
Clickjacking: موقعك في iframe شفاف
frame-ancestors 'none' و X-Frame-Options: DENYOpen Redirect:
?next= لأي دومينrelative paths بس (يبدأ بـ / ومش //) أو allow-listLeaked Secrets: مفتاح في ريبو عامrotate فورًا، وبعدين scanning و push protection
سر في
VITE_ أو NEXT_PUBLIC_انقله للـ backend. الـ bundle عامخلّصت المذكرة لما
🧠 اختبر نفسك
١) إيه القاعدة اللي بتجمع Injection و XSS و Path Traversal؟
الـ input داتا، عمره ما يتفسر كأوامر أو كود أو مسار من غير فحص.
٢) إيه اللي بيجمع CSRF و Clickjacking؟
الاتنين بيستغلوا إن المتصفح عامل login، والحل في الـ cookies والـ headers.
٣) أنهي واحدة رقم ١ في OWASP Top 10؟
Broken Access Control، و IDOR أشهر شكل منها.