siwane

ما هو اختطاف النقر (ClickJacking)؟ وكيف تحمي صفحتك من اختطاف النقر باستخدام JavaScript

اختطاف النقر المتعارف عليه ايضاً بـ ClickJacking هو تقنية خبيثة متطورة يستخدمها المهاجمون لخداع المستخدمين للنقر على شيء مختلف عما يدركونه، مما قد...
Split Post - Split Article Into Several Pages
ما هو اختطاف النقر (ClickJacking)؟ وكيف تحمي صفحتك من اختطاف النقر باستخدام JavaScript

السلام عليكم ورحمة الله وبركات

ما هو اختطاف النقر؟

اختطاف النقر، المعروف أيضًا بهجوم إعادة تصميم واجهة المستخدم، هو تقنية خبيثة حيث يخدع المهاجم المستخدم للنقر على شيء مختلف عما يدركه، مما يؤدي إلى تنفيذ إجراءات غير معروفة لهم. يمكن أن يؤدي ذلك إلى الوصول غير المصرح به، سرقة البيانات، أو أنشطة ضارة أخرى. مصطلح "اختطاف النقر" هو مزيج من "نقرة" و"اختطاف"، مما يشير إلى اختطاف نقرة المستخدم.

كيف يعمل اختطاف النقر؟

عادةً ما يتضمن اختطاف النقر تضمين إطار شفاف أو غير شفاف فوق صفحة ويب شرعية. يقوم المهاجم بعد ذلك بإنشاء الإطار بطريقة تجعل المستخدم ينقر على زر أو رابط مرئي، ولكنه في الواقع ينقر على المحتوى المخفي داخل الإطار. يمكن أن يؤدي ذلك إلى إجراءات غير مقصودة مثل تغيير إعدادات الحساب، بدء المعاملات، أو منح الأذونات.

مثال على اختطاف النقر

افترض أن المستخدم يتصفح موقع ويب موثوق وينقر على زر لتنفيذ إجراء ما، مثل الإعجاب بمنشور على وسائل التواصل الاجتماعي. دون علم المستخدم، قام المهاجم بتراكب إطار غير مرئي على الصفحة. عندما ينقر المستخدم على الزر، فإنه في الواقع ينقر على زر مخفي داخل الإطار يقوم بإجراء مختلف، مثل متابعة حساب ضار أو تمكين كاميرا الويب.

ClickJacking

أنواع هجمات اختطاف النقر

1. اختطاف الإعجاب

هذا النوع من اختطاف النقر يتضمن خداع المستخدمين للإعجاب بصفحة أو منشور على فيسبوك دون موافقتهم. قد يستخدم المهاجمون محتوى مغري لجذب المستخدمين للنقر على زر "إعجاب" مخفي.

2. اختطاف المؤشر

يستغل اختطاف المؤشر مؤشر المستخدم للنقر على عناصر غير مقصودة. يغير المهاجم مظهر أو موضع المؤشر، مما يجعل من الصعب على المستخدمين إدراك أنهم ينقرون على شيء مختلف عما يرونه.

3. اختطاف الملفات

في هجوم اختطاف الملفات، يتم خداع المستخدمين لتحميل أو تنزيل ملفات دون علمهم. يمكن أن يؤدي ذلك إلى تثبيت برامج ضارة أو الكشف عن بيانات حساسة.

عواقب اختطاف النقر

يمكن أن تكون عواقب اختطاف النقر شديدة، مما يؤثر على كل من المستخدمين وأصحاب المواقع. تتضمن بعض العواقب المحتملة:

  1. إجراءات غير مصرح بها: قد يقوم المستخدمون دون علمهم بتنفيذ إجراءات مثل إجراء عمليات شراء، تغيير إعدادات الحساب، أو تمكين ميزات الجهاز.
  2. سرقة البيانات: يمكن للمهاجمين الوصول إلى معلومات حساسة، بما في ذلك بيانات تسجيل الدخول والبيانات الشخصية.
  3. انتشار البرمجيات الضارة: يمكن أن يؤدي اختطاف النقر إلى التثبيت غير المقصود للبرمجيات الضارة، مما يهدد أجهزة المستخدمين.
  4. ضرر السمعة: قد تتضرر سمعة المواقع التي تقع ضحية لهجمات اختطاف النقر، مما يؤدي إلى فقدان ثقة المستخدمين والمصداقية.

اذا تسائلت هل!؟ مدونات بلوجر (Blogger) يمكن أن تكون معرضة لهجمات ClickJacking إذا لم تُتخذ التدابير الأمنية المناسبة. هجمات ClickJacking هي نوع من الهجمات السيبرانية حيث يقوم المهاجم بإدراج صفحة ويب أو عنصر من صفحة ويب ضمن إطار (iframe) في موقع آخر غير موثوق به، مما يدفع المستخدمين إلى النقر على أشياء لا يرونها أو يدركون وجودها.
لتقليل مخاطر هذه الهجمات على مدونات بلوجر، يمكن اتباع الإجراءات التالية:
استخدام هيدر X-Frame-Options: هذا الهيدر يمكن أن يساعد في منع تحميل صفحات بلوجر في إطارات على مواقع أخرى. يجب تعيين هذا الهيدر إلى "DENY" أو "SAMEORIGIN" لمنع هجمات ClickJacking. رغم أن بلوجر لا يسمح مباشرة بتعديل رؤوس HTTP، يمكن استخدام خدمات الطرف الثالث أو إعدادات خادم الويب لتحقيق ذلك.
تجنب إضافة أكواد JavaScript غير موثوق بها: تجنب تضمين أكواد من مصادر غير موثوقة التي قد تكون عرضة لهجمات أو تضم كوداً ضاراً.
مراجعة إعدادات الأمان بانتظام: تأكد من مراجعة تحديثات الأمان وأفضل الممارسات من بلوجر وجوجل.
إذا كنت تستخدم مدونات بلوجر، فإن الحفاظ على أمانها يتطلب الانتباه المستمر واستخدام أفضل الممارسات لتجنب الثغرات الأمنية الشائعة مثل ClickJacking.

كيف تمنع اختطاف النقر

منع اختطاف النقر يتطلب تنفيذ إجراءات أمان متنوعة لحماية كل من المستخدمين والمواقع. إليك بعض الأساليب الفعالة:

1. سياسة أمان المحتوى (CSP)

سياسة أمان المحتوى (CSP) هي ترويسة HTTP تساعد في منع اختطاف النقر من خلال تحديد المصادر المسموح لها بتأطير محتواك. على سبيل المثال:

Content-Security-Policy: frame-ancestors 'self'

تضمن هذه التوجيهات أن الأصل نفسه فقط يمكنه تضمين محتواك في إطار.

2. ترويسة X-Frame-Options

ترويسة X-Frame-Options هي ترويسة HTTP أخرى تساعد في الحماية من اختطاف النقر عن طريق التحكم في ما إذا كان يجب على المتصفح السماح بعرض الصفحة داخل <frame>، <iframe>، <embed>، أو <object>. على سبيل المثال:

X-Frame-Options: SAMEORIGIN

تضمن هذه التوجيهات أن محتواك يمكن تأطيره فقط بواسطة صفحات من نفس الأصل.

3. أكواد كسر الإطارات

أكواد كسر الإطارات هي أكواد JavaScript تمنع صفحتك من التحميل داخل إطار. إليك مثال:

<script> if (top != self) { top.location.href = self.location.href; } </script>

تفحص هذه الكود ما إذا كانت النافذة الحالية ليست النافذة العليا، وإذا كان الأمر كذلك، تعيد توجيه النافذة العليا إلى عنوان URL الحالي، مما يكسر الإطار بشكل فعال.

4. توعية وتثقيف المستخدمين

توعية المستخدمين بمخاطر اختطاف النقر وتشجيعهم على توخي الحذر عند النقر على الروابط أو الأزرار غير المألوفة يمكن أن يساعد في تقليل المخاطر. يجب نصح المستخدمين بالتحقق من شرعية المواقع وتجنب النقر على المحتوى المشبوه.

اختطاف النقر هو تهديد خطير يمكن أن يؤدي إلى إجراءات غير مصرح بها، سرقة البيانات، وأنشطة ضارة أخرى. بفهم كيفية عمل اختطاف النقر وتنفيذ أساليب الوقاية الفعالة مثل CSP، ترويسة X-Frame-Options، أكواد كسر الإطارات، وتثقيف المستخدمين، يمكنك حماية موقعك ومستخدميك من الوقوع ضحية لهذه الهجمات. ابقَ يقظًا واستباقيًا في تأمين محتوى الويب الخاص بك لضمان تجربة آمنة وموثوقة على الإنترنت.

يجب على أصحاب المواقع توعية المستخدمين بمخاطر الـ Clickjacking وتحذيرهم من النقر على روابط أو أزرار غير معتادة، والتحقق دائمًا من شرعية المواقع التي يتفاعلون معها، حيث أن التصرف بحذر يلعب دورًا حاسمًا في الوقاية من هذا النوع من الهجمات الخبيثة.

حماية صفحتك من اختطاف النقر باستخدام JavaScript

اختطاف النقر هو تقنية خبيثة متطورة يستخدمها المهاجمون لخداع المستخدمين للنقر على شيء مختلف عما يدركونه، مما قد يؤدي إلى اختراقات أمنية خطيرة أو سرقة البيانات. إحدى الطرق الفعالة للدفاع ضد اختطاف النقر هي منع تحميل صفحتك داخل إطار من نطاق آخر. هذه التقنية تضمن أن المستخدمين يتفاعلون مباشرة مع موقعك بدلاً من خلال وسيط يمكن أن يتلاعب بإجراءاتهم. إليك دليل خطوة بخطوة حول كيفية تنفيذ هذه الحماية باستخدام كود JavaScript بسيط.

ClickJacking

كود JavaScript

إليك الكود الكامل لـ JavaScript لحماية صفحتك من التحميل داخل إطار غير مصرح به:

<script> if (top != self) { // تحقق مما إذا كانت النافذة الحالية ليست النافذة العليا if (document.referrer.indexOf(window.location.host) == -1) { // تحقق مما إذا كان المُحيل لا يتطابق مع المضيف الحالي // قم بإنشاء عنصر نمط لإخفاء body var style = document.createElement('style'); style.innerHTML = 'body { display: none!important; }'; document.head.appendChild(style); // أعد توجيه النافذة العلوية إلى عنوان URL الخاص بإطار iframe بعد ثانية واحدة setTimeout(() => { top.location.href = self.location.href; }, 1000); } } </script>

تفسير الكود

1. التحقق مما إذا كانت الصفحة في إطار

if (top != self)

هذه الشرطية تتحقق مما إذا كانت النافذة الحالية (self) ليست النافذة العليا (top). إذا كانت هذه الحالة صحيحة، فهذا يعني أن الصفحة تُحمّل داخل إطار. هذه هي الخطوة الأولى في تحديد السيناريوهات المحتملة لاختطاف النقر.

2. التحقق من المحيل

if (document.referrer.indexOf(window.location.host) == -1)

هذه الشرطية تتحقق مما إذا كان المحيل (الصفحة التي قامت بتحميل الإطار) لا يتطابق مع المضيف الحالي. توفر خاصية document.referrer عنوان الصفحة التي ارتبطت بالصفحة الحالية. من خلال التحقق من أن المحيل لا يحتوي على عنوان المضيف الحالي، يمكننا اكتشاف ما إذا كان الإطار يتم تحميله من نطاق مختلف، وهي تقنية شائعة في هجمات اختطاف النقر.

3. إخفاء محتوى الصفحة

var style = document.createElement('style');
style.innerHTML = 'body { display: none!important; }';
document.head.appendChild(style);

هذه الجزء من الكود ينشئ عنصر <style> لإخفاء جسم الوثيقة عن طريق تعيين الخاصية display: none!important;، مما يجعل المحتوى غير مرئي فعليًا. هذه خطوة دفاعية لضمان أنه إذا كانت الصفحة تُحمّل بشكل غير صحيح داخل إطار، فإن المستخدم لن يرى أو يتفاعل مع أي محتوى على الصفحة.

4. إعادة توجيه النافذة العليا

setTimeout(() => {
   top.location.href = self.location.href;
}, 1000);

هذا يحدد مؤقتًا لإعادة توجيه النافذة العليا إلى عنوان URL للإطار بعد ثانية واحدة. يضمن هذا أن المستخدم يتم توجيهه مباشرة إلى صفحتك، متجاوزًا الإطار. التأخير يسمح للسكريبت بالتنفيذ بشكل كامل ويضمن حدوث إعادة التوجيه بسلاسة.

باختصار، يُستخدم هذا الكود لحماية الصفحة من هجمات الـ "clickjacking"، حيث يتم إخفاء محتوى الصفحة إذا تم تحميلها داخل إطار ومن ثم إعادة توجيه المستخدم إلى الصفحة نفسها خارج الإطار. هذا يضمن أن المستخدم يعرض المحتوى فقط عندما يكون يتفاعل مباشرة مع الصفحة، ويمنع الاستفادة من الصفحة بطرق غير مشروعة عن طريق إطارات خفية أو مضللة.

تركيب الكود على بلوجر

الخطوة 1 :- ✦ قم بتسجيل الدخول إلى لوحة التحكم بلوجر
الخطوة 2 :- ✦ انتقل إلى لوحة تحكم بلوجر واختر "المظهر".
الخطوة 3 :- ✦ انقر على السهم بجانب التخصيص اختر تعديل HTML
الخطوة 4 :- ✦ بعد ذلك، ابحث عن علامة </body> وألصق الكود (الموجود في صندوق الاكواد اعلاه) فوقها.
الخطوة 5 :- ✦ بمجرد لصق الكود، احفظ التغييرات بالنقر فوق هذا الرمز .

لماذا يعتبر اختطاف النقر خطيرًا؟

اختطاف النقر خطير لأنه يمكن أن يؤدي إلى تنفيذ إجراءات غير مصرح بها نيابة عن المستخدم. على سبيل المثال، قد يقوم المهاجمون بإنشاء واجهة مخفية فوق واجهة مرئية، مما يؤدي إلى نقر المستخدمين دون علم على أزرار أو روابط تؤدي إلى إجراءات ضارة. يمكن أن تتراوح هذه الإجراءات من تغيير إعدادات على موقع إلى تنفيذ معاملات مالية. لذلك فإن حماية صفحتك ضد اختطاف النقر أمر ضروري للحفاظ على أمان وسلامة تفاعلات المستخدم.

التنفيذ في مستند HTML

يمكنك تضمين كود JavaScript أعلاه في مستند HTML الخاص بك لحمايته. إليك مثال:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>حماية iframe</title>
</head>
<body>
  <h1>هذه صفحة محمية</h1>
  <p>إذا رأيت هذه الرسالة، فأنت لا تعرض هذه الصفحة في إطار iframe غير مصرح به.</p>

  <script>
    if (top != self) {
      // تحقق مما إذا كانت النافذة الحالية ليست النافذة العليا
      if (document.referrer.indexOf(window.location.host) == -1) {
        // تحقق مما إذا كان المُحيل لا يتطابق مع المضيف الحالي

        // قم بإنشاء عنصر نمط لإخفاء body
        var style = document.createElement('style');
        style.innerHTML = 'body { display: none!important; }';
        document.head.appendChild(style);

        // أعد توجيه النافذة العلوية إلى عنوان URL الخاص بإطار iframe بعد ثانية واحدة
        setTimeout(() => {
          top.location.href = self.location.href;
        }, 1000);
      }
    }
  </script>
</body>
</html>

إجراءات أمنية إضافية

بينما تعد الطريقة المذكورة أعلاه فعالة، هناك إجراءات أمنية إضافية يمكنك اتخاذها لحماية موقعك من اختطاف النقر:

  • سياسة أمان المحتوى (CSP): يمكنك استخدام ترويسة سياسة أمان المحتوى للتحكم في المواقع المسموح لها بتأطير محتواك. على سبيل المثال: Content-Security-Policy: frame-ancestors 'self'. تضمن هذه التوجيهات أن نطاقك الخاص فقط يمكنه تأطير محتواك.
  • ترويسة X-Frame-Options: يمكن استخدام هذه الترويسة لـ HTTP للإشارة إلى ما إذا كان يجب على المتصفح السماح بعرض الصفحة داخل <frame>، <iframe>، <embed>، أو <object>. على سبيل المثال: X-Frame-Options: SAMEORIGIN. تمنع هذه التوجيهات محتواك من التأطير بواسطة صفحات من أصول أخرى.
الـ Clickjacking، المعروف أيضًا بـ UI redress attack، هو تقنية خبيثة يخدع فيها المهاجم المستخدم للنقر على شيء مختلف عن الذي يتصوره المستخدم، مما يؤدي إلى تنفيذ إجراءات دون علمه.جمال الحزازي

الخلاصة

من خلال تنفيذ كود JavaScript البسيط هذا، يمكنك حماية صفحتك من التحميل داخل إطارات غير مصرح بها، وبالتالي تقليل خطر هجمات اختطاف النقر. هذا يضمن أن المستخدمين يتفاعلون مباشرة مع صفحتك كما هو مقصود، مما يعزز من الأمان وتجربة المستخدم. بالإضافة إلى ذلك، فكر في تنفيذ ترويسات الأمان الأخرى مثل سياسة أمان المحتوى وترويسة X-Frame-Options للحصول على استراتيجية دفاعية أكثر قوة.

سؤال: ما هو الـ Clickjacking؟

- جواب: الـ Clickjacking، المعروف أيضًا بـ UI redress attack، هو تقنية خبيثة يخدع فيها المهاجم المستخدم للنقر على شيء مختلف عن الذي يتصوره المستخدم، مما يؤدي إلى تنفيذ إجراءات دون علمه. يمكن أن يؤدي ذلك إلى الوصول غير المصرح به، وسرقة البيانات، أو أنشطة أخرى ضارة.

سؤال: كيف يعمل الـ Clickjacking؟

- جواب: يتضمن الـ Clickjacking غالبًا تضمين إطار iframe شفاف أو غير شفاف فوق صفحة ويب شرعية. يقوم المهاجم بصنع الإطار بطريقة تجعل عندما ينقر المستخدم على زر أو رابط مرئي، فإنهم في الواقع ينقرون على المحتوى المخفي داخل iframe.

سؤال: ما هي أنواع هجمات الـ Clickjacking؟

- جواب: هناك عدة أنواع من هجمات الـ Clickjacking، بما في ذلك Likejacking وCursorjacking وFilejacking، تستهدف كل واحدة منها نقاط ضعف مختلفة في تفاعل المستخدم مع الواجهة.

سؤال: كيف يمكنني حماية موقعي من الـ Clickjacking؟

- جواب: يمكن تجنب الـ Clickjacking من خلال تنفيذ تدابير أمنية مختلفة، مثل Content Security Policy (CSP)، و X-Frame-Options Header، وإستخدام السكربتات التي تكسر الإطارات، وتوعية المستخدمين حول مخاطر الـ Clickjacking وكيفية التصرف بحذر على الإنترنت.

المشاركات ذات الصلة

شكرًا لمساعدة ChatGPT في إعداد هذا المقال

المصادر:
siwaneSiwaneXYZ©
https://www.siwane.xyz/2024/05/what-is-clickjacking-and-how-to-protect.html

عن المؤلف

جمال الحزازي
مرحبا انا منشئ محتوى رقمي (صِوانˣʸᶻ) مهتم بالتصميم ui/ux، مدون في مجال التقنية و العلوم تعرف على المزيد.
اشتري لي كوب قهوة ☕

تعليقان (2)

  1. Mouad mody
    Mouad mody
    الله يعطيك الصحة😍❤️ مقال جيد ومفيد
    1. جمال الحزازي
      جمال الحزازي
      شكرا على مرورك
اكتب تعليقك 🤗، لكن تيقن ان كلماتك تعبر عن من انت.
"لا يقال قف لاراك بل تكلم لأعرفك"

الانضمام إلى المحادثة

الانضمام إلى المحادثة