دليل Nonces في WordPress

نشرت: 2023-02-12

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

nonce هو "رقم يُستخدم مرة واحدة" ، وهو يحمي النماذج وعناوين URL من الأفراد الضارين وإساءة الاستخدام الأخرى. تعمل هذه الأرقام كقيم تعريف يجب على متصفحات المستخدمين إظهارها ، من أجل الحصول على إذن لتنفيذ إجراءات حساسة.

في هذه المقالة ، سنلقي نظرة على كيفية عمل nonces في WordPress وكيفية إنشائها. سنناقش بعد ذلك كيفية التحقق من رقم nonce. هيا بنا نبدأ!

جدول المحتويات
1. كيف يعمل برنامج Nonces في WordPress؟
2. إنشاء Nonce
3. التحقق من Nonce
4. بناء تجارب رقمية آمنة على WP Engine

كيف يعمل برنامج Nonces في WordPress؟

الغرض الأساسي من nonce هو حماية موقع WordPress الخاص بك من الهجمات الضارة ، مثل Cross-Site Request Forgeries (CSRFs). يخدع هذا النوع من الهجوم المستخدمين لإرسال نموذج أو النقر فوق ارتباط يضر بموقع الويب الخاص بك. لحماية موقعك ، يتحقق WordPress من قيمة nonce ، ويسمح فقط بإكمال الإجراء إذا كانت هذه القيمة صحيحة.

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

عند استخدام nonce ، يكون لها عمر افتراضي يبلغ 24 ساعة. بعد ذلك الوقت ، لم يعد من الممكن استخدام nonce للتحقق من الإجراء الذي تم تحديده من أجله. ومع ذلك ، يمكن تعديل هذا العمر من قبل مسؤولي الموقع.

واحدة من أكثر هجمات CSRF شيوعًا التي تحمي nonces ضدها هي الحذف الضار لحسابات المستخدمين. بعد تنفيذ nonce ، ستنشئ شاشة المسؤول عنوان URL لحذف الحساب. سيضيف WordPress قيمة nonce إلى نهاية عنوان URL هذا ، والذي سيبدو كالتالي:

http://yourdomain.com/wp-admin/users.php؟user=7&action=delete&_wpnonce=c214gd5315

إذا حاول المهاجم استبدال معرف المستخدم بقيمة أخرى ، مثل "user = 8" ، فإن nonce سيكون غير صالح. سيفشل حذف الحساب ، وستظهر صفحة الخطأ 403 Forbidden Error. هذا يجعل الأمر أكثر صعوبة على الأفراد الضارين لمهاجمة محتوى موقعك.

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

إنشاء Nonce

لإنشاء رمز nonce ، ستحتاج إلى إضافة وظيفة إلى رمز موقع الويب الخاص بك. يتم وضع جميع أكواد الإنشاء غير الرسمية في ملف function.php . لفتح هذا الملف ، انتقل إلى المظهر > محرر السمات في لوحة معلومات WordPress الخاصة بك. إلى اليمين ، انقر فوق function.php لفتح محرر الملف.

يتم تنفيذ Nonces بشكل منفصل لعناوين URL والنماذج والإجراءات. لإنشاء إجراء nonce ، أضف الكود التالي إلى هذا الملف:

 $nonce= wp_create_nonce('$action');

يجب تعديل قسم "$ action" من الكود ليعكس الإجراء الذي تريد أن يتحقق nonce. من الأمثلة على ذلك استخدام الإجراء "delete-post" ، الذي يُنشئ nonce للتحقق من المستخدمين الذين يحاولون حذف المنشورات.

لإنشاء رمز nonce لعنوان URL ، يمكنك استخدام الكود التالي:

 $nonce= wp_nonce_url();

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

إذا كنت ترغب في إنشاء nonce لحذف حساب مستخدم ، فيمكنك استخدام هذا المقتطف:

 $nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);

سيعمل WordPress بشكل افتراضي على اسم nonce إلى "_wpnonce" ، ولكن يمكنك تحديث هذا عن طريق إضافة الاسم الذي اخترته إلى نهاية السلسلة أعلاه.

لإنشاء رمز nonce لنموذج ، قم بتضمين هذا الرمز:

 $nonce= wp_nonce_field();

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

 $nonce= wp_nonce_field('remove-comment_'.$comment_id);

سيكون لهذه الوظيفة nonce أيضًا اسم nonce الافتراضي في WordPress. ومع ذلك ، هذا أيضًا شيء يمكنك تعديله إذا كنت تفضل ذلك.

التحقق من Nonce

بعد إضافة nonce إلى موقع WordPress الخاص بك ، من المهم أن تتحقق منه. هذا يضمن أن nonce يعمل بشكل صحيح ويحافظ على موقع الويب الخاص بك آمنًا.

تُستخدم طرق مختلفة للتحقق من عدم وجود عناوين URL والنماذج. للتحقق من عنوان URL nonce ، أضف الكود التالي إلى ملف jobs.php :

 wp_verify_nonce($nonce, $action);

في هذه الوظيفة ، اضبط "nonce $" على اسم nonce الذي تريد التحقق منه ، مثل "delete-user". بعد ذلك ، قم بتغيير السلسلة "$ action" إلى الوقت المحدد الذي يتم فيه إنشاء nonce. عند تشغيل الوظيفة ، ستعيد "خطأ" إذا كان nonce غير صالح.

إذا كان nonce صالحًا ، من ناحية أخرى ، ستُرجع الدالة إما 1 أو 2. وهذا يخبرك بعمر nonce. تعني القيمة التي تساوي 1 أنه تم إنشاء رقم nonce في آخر 12 ساعة. تعني القيمة التي تساوي 2 أنه تم إنشاء رقم nonce أكثر من 12 ساعة ، ولكن قبل أقل من 24 ساعة.

إذا قمت بإضافة nonce إلى نموذج ، فإن الكود التالي مطلوب للتحقق منه:

 check_admin_referer($action, $nonce);

إذا كانت قيمة nonce صالحة ، فسيعمل النموذج على النحو المنشود. ومع ذلك ، إذا كان nonce غير صالح ، فسيعيد متصفح المستخدم توجيهه إلى صفحة الخطأ 403 Forbidden Error.

بناء تجارب رقمية آمنة على WP Engine

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

أثناء إنشاء وتنفيذ nonces يعزز أمان الموقع ، هناك بروتوكولات أمان أخرى يجب مراعاتها أيضًا. لحسن الحظ ، توفر منصة استضافة WordPress الآمنة الخاصة بـ WP Engine بعضًا من أفضل موارد الأمان للمستخدمين والمطورين. هذا يترك لك المزيد من الوقت للتركيز على إتقان موقع WordPress الخاص بك!