كيفية تصميم نماذج الويب الآمنة: التحقق من الصحة والتعقيم والتحكم

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

بالنسبة إلى بعض نقاط الضعف التي قد تكون مدمرة مثل حقن SQL و Cross-Site Scripting (XSS) ، فإن واجهة المستخدم المدروسة هي خط الدفاع الأول.

فيما يلي بعض مجالات التركيز لمطوري الواجهة الأمامية الذين يريدون المساعدة في خوض معركة جيدة.

التحكم في إدخال المستخدم

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

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

في حين أنه قد لا يكون بديهيًا ، يجب التحقق من صحة البيانات التي يرسلها المستخدم إلى منطقته الخاصة على الموقع. كان أحد أسرع الفيروسات انتشارًا هو دودة Samy على موقع MySpace (نعم ، أنا عجوز) ، بفضل الشفرة التي تمكن Samy Kamkar من حقنها في صفحة ملفه الشخصي. لا تعيد أي مدخلات مباشرة إلى موقعك دون التحقق الشامل من الصحة أو التطهير.

للحصول على مزيد من الإرشادات حول مكافحة هجمات الحقن ، راجع ورقة الغش لمنع حقن OWASP.

احذر من الحقول المخفية

type="hidden"تعد الإضافة طريقة جذابة وملائمة لإخفاء البيانات الحساسة في الصفحات والنماذج ، ولكنها للأسف ليست فعالة.

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

يمكن أن يكون إخفاء مربعات الاختيار اختراقًا أنيقًا لإنشاء محولات CSS فقط ، لكن الحقول المخفية لا تساهم كثيرًا في الأمان.

ضع في اعتبارك بعناية حقول الملء التلقائي

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

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

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

حافظ على الأخطاء عامة

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

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

كن رجلا سيئا

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

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

يبدأ الأمن عند الباب الأمامي

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