تعال نتكلم عن حاجة يمكن تكون سمعت عنها كتير لو أنت مهتم بتأمين تطبيقات الويب، وهي الـ CSRF أو Cross-Site Request Forgery.
المصطلح ده بيشير لنوع معين من الهجمات السيبرانية اللي ممكن تؤثر على الأمان لو مكنش التطبيق معمول بشكل صح ومتأمن كويس. طيب إيه فكرته وإزاي الهجوم ده بيتم؟
لو أنت مسجل دخول في موقع معين (خلينا نقول حسابك البنكي أو حساب التواصل الاجتماعي بتاعك)، والموقع ده بيستخدم Sessions أو Cookies عشان يحفظ حالتك كمسجل دخول، الهجوم بيبدأ لما هكر يحاول يستغل نقطة معينة وهي إن الموقع ده مبيقدرش يعرف إذا كنت أنت اللي عملت الطلب ده ولا لا.
يعني، بيبعت لك لينك أو صورة ضارة على موقع تاني ولو أنت ضغطت عليها وأنت مسجل دخول على الموقع التاني (البنك مثلًا)، الهكر يقدر يبعت طلب على الموقع باسمك ويعمل حاجات أنت ما طلبتها.
📍 إزاي الـ CSRF بيشتغل؟
تسجيل الدخول للموقع: أنت مثلًا مسجل دخول لحسابك على موقع البنك.
الهكر يبعتلك رابط أو صورة ضارة على موقع أو على إيميل، وأنت تضغط عليها وأنت مسجل دخول في موقع البنك.
لو مفيش حماية كافية، الطلب اللي أنت ضغطت عليه ممكن يروح لموقع البنك، كأنك أنت اللي عملته.
⚡️ مثال بسيط على اللي ممكن يحصل:
الهكر ممكن يبعتلك لينك فيه طلب لتحويل فلوس لحساب معين، ولما تضغط على اللينك، موقع البنك هيستقبل الطلب، وبيفتكر إنك أنت اللي بعت الطلب ده طالما أنت مسجل دخول.
📍 إزاي نأمن نفسنا؟
- فيه حلول وأساليب تقنية كتير بتمنع الهجوم ده، أهمها:
✅ الـ Tokens (CSRF Tokens): ودي عبارة عن رموز بيتم توليدها بشكل عشوائي في كل مرة بتفتح صفحة جديدة أو تعمل طلب معين. لو الطلب مبعتش التوكن ده، الموقع هيرفض الطلب ويمنعه.
✅ الـ SameSite Cookies: وده إعداد في الـ Cookies اللي بيمنع إرسالها من مواقع تانية، وبالتالي بيقلل احتمالية تنفيذ الطلبات اللي مش من داخل الموقع نفسه.
✅ تحديد Referrer Header: الموقع بيتأكد من المكان اللي جايه منه الطلبات، عشان يشوف إذا كانت من نفس الموقع أو من موقع تاني.
📌 ليه لازم تهتم بالحماية ضد الـ CSRF؟
لأن الهجوم خطير جدًا لأن المستخدم ما بيعرف إنه بيتعرض له، وبيبقى فاكر إن كل حاجة ماشية عادي، بس ممكن الهكر يعمل أي طلبات على حسابه باسم المستخدم.
ده غير إن المواقع نفسها ممكن تتضرر لو حد استغل الثغرة دي في حاجات زي تحويلات مالية أو تغييرات في الحسابات.
بالتوفيق يا بطل 🔥