كل المقالات

نموذج التواصل باب إلى موقعك: كيف تؤمّنه

نماذج التواصل والطلبات تقبل نصوصًا من أي أحد، والروبوتات منهم. الرسائل المزعجة، وحقن الشيفرة، ورفع الملفات، وcaptcha وhoneypot، ومن يستطيع قراءة ما يرسله الناس.

بقلم Radek من ENSOMEDIAنُشر في 6 دقائق للقراءةIn EnglishPo polskuAuf DeutschEn españolEn français中文

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

لهذا تكون نماذج التواصل والطلبات وحجز المواعيد من أول ما ينظر إليه المهاجم. فيما يلي المخاطر، وكيف تتعرف عليها، وماذا تسأل من يدير موقعك.

سيل الرسائل المزعجة أكثر من صندوق بريد مزدحم

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

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

إن كان في نموذجك خيار «أرسل لي نسخة»، فاسأل: هل تحتاجه فعلًا؟

ثلاثة هجمات، لكل منها جملة

الأسماء تبدو مخيفة، لكن المبدأ بسيط. كل هجوم منها ينجح لأن النموذج يثق بما كتبه أحدهم.

حقن ترويسات البريد (email header injection): يكتب أحدهم في خانة البريد أو الموضوع فواصل أسطر وعناوين إضافية، فيرسل النموذج المكتوب بإهمال رسائل من خادمك إلى أي عناوين يريدها.

حقن SQL: يكتب أحدهم في خانة جزءًا من أمر لقاعدة البيانات، فينفّذه النموذج الذي يمرر النص إلى قاعدة البيانات مباشرة، وقد يكشف ذلك البيانات المحفوظة فيها أو يغيّرها.

البرمجة عبر المواقع (XSS): يكتب أحدهم جزءًا من شيفرة برمجية بدل اسمه، وحين تفتح هذه الرسالة في لوحة التحكم تعمل الشيفرة في متصفحك بصلاحيات المدير التي لديك.

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

الملفات التي يرسلها العملاء

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

أكبر خطر هو ملف يتظاهر بأنه صورة وهو في الحقيقة برنامج، مثل ملف اسمه invoice.jpg.php. إن قبله الخادم وسمح بتشغيله، يسيطر المهاجم على الموقع. لذلك اطلب من المطوّر أن يؤكد لك:

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

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

captcha وhoneypot وتحديد عدد الطلبات

هناك ثلاث طرق للتعامل مع الروبوتات، وتعمل أفضل معًا.

الـhoneypot خانة إضافية في النموذج لا يراها الناس. الروبوتات تملأ كل الخانات، فإن وُجد فيها شيء يتخلص النموذج من الرسالة بصمت. لا يلاحظ العملاء شيئًا، وتختفي أبسط الروبوتات.

الـcaptcha يميّز بين الناس والروبوتات. والأنواع الأحدث، مثل Google reCAPTCHA v3 وCloudflare Turnstile وhCaptcha، تعمل في الغالب في الخلفية، دون إعادة كتابة الحروف أو النقر على صور إشارات المرور. لكن تذكّر أنها تنقل معلومات عن زوارك إلى شركة أخرى، فيجب أن تذكرها سياسة الخصوصية لديك.

تحديد عدد الطلبات (rate limiting) يضع سقفًا لعدد الرسائل التي يمكن إرسالها من عنوان واحد في وقت قصير. من غير المرجح أن يلاحظه العملاء الحقيقيون، لكنه يوقف سيول الرسائل المزعجة والاختبار الآلي للنموذج. ويُضبط على الخادم أو في خدمة جدار حماية مثل Cloudflare.

الـhoneypot مع تحديد عدد الطلبات يكفي عادة للبداية. أضف captcha إن استمرت الرسائل المزعجة في الوصول.

أين تذهب الرسائل ومن يستطيع قراءتها

قد تنتهي رسالة نموذجك في مكانين: صندوق بريد، وقاعدة بيانات الموقع. بعض الإضافات يرسل بريدًا فقط. وبعضها يحفظ أيضًا كل رسالة في لوحة التحكم، عادة تحت عنصر في القائمة اسمه قريب من «Entries» أو «Submissions». سجّل دخولك وانظر أيهما ينطبق عليك.

ثم أجب لنفسك عن بضعة أسئلة:

  1. من يستطيع الدخول إلى صندوق البريد الذي يستقبل الرسائل؟ هل حوّله أحد إلى حسابه الشخصي في Gmail قبل أن يغادر؟
  2. من لديه حساب مدير في لوحة التحكم؟ كل واحد منهم يستطيع قراءة كل رسالة محفوظة.
  3. كم تُحفظ الرسائل؟ بعض الإضافات تسمح بحذف الرسائل القديمة تلقائيًا.
  4. هل تعمل الصفحة التي فيها النموذج عبر HTTPS، والقفل ظاهر؟

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

إضافة محدّثة، وواحدة بدل ثلاث

إضافات النماذج من أكثر الإضافات انتشارًا، لذلك يهتم بها المهاجمون كثيرًا. تُكتشف فيها ثغرات وتُصلح بانتظام، ولهذا لا ينبغي أن ينتظر تحديث إضافة النماذج أسابيع في قائمة التحديثات.

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

وعادة لا تكلّف شيئًا: أرسل مرة في الشهر رسالة تجريبية عبر نموذجك. قد يتوقف النموذج عن العمل دون أي تنبيه، فيظن العميل أنك تتجاهله وأنت لا تعرف أصلًا أنه كتب.