الآخر

Cheat Sheet: الهجمة… والسطر اللي بيقفلها

One-page recall for 10 web attacks
🎯 الهدف: تفتكر كل هجمة وحلها في سطر قبل الـ code review أو الإنترفيو.
SQL Injection: الـ input اتلزق في الـ queryparameterized queries ($1). والـ input داتا عمره ما يبقى نص SQL
ORDER BY أو اسم عمود من المستخدمallow-list لقيم ثابتة
XSS: سكريبت بيشتغل في صفحتكescape لكل output، و DOMPurify قبل أي HTML خام
لينك من المستخدم في hrefاسمح بـ https: و http: بس
عايز طبقة تانية ضد XSSContent-Security-Policy من غير unsafe-inline
CSRF: موقع تاني بيبعت بالـ 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: DENY
Open Redirect: ?next= لأي دومينrelative paths بس (يبدأ بـ / ومش //) أو allow-list
Leaked 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 أشهر شكل منها.