انا اصمم موقع لأتعلم و اثناء التصميم احاول ان امنع المستخدم يعرف id او طريقة تنسيق style مثل color red width 100px يعني لا اريده معرفة ماذا افعل في الصور او القائمة او تنسيق الموقع من اجل ان امنع المستخدم من تخريب تصميم الموقع و هذا لا يؤثر على حماية الموقع. لكن اتسائل هذا الشيء صحيح ام انا ابالغ لان احاول تصحيح هذا الشيء لساعات.
هل انا ابالغ في تصميم الواجهة الامامية
صدقت عندما قلت " ترى في المستخدم خصمًا أو متطفلًا" ههههههههههه. السبب هو ان كل مره اسمع ان اذا تريد تصنع موقع او برنامج امن لابد ان تتذكر ان المستخدم هو اول شخص لا تثق به لأنه قد يريد العبث بالبرنامج او الموقع ليجد ثغرة.
ما تقوله صحيح بالفعل يجب عليك أن تتعامل مع المستخدم أنه (مخترق أو يريد تعطيل موقعك) ولكن هذا الأمر لمبرمجين الواجهة الخلفية وليس الأمامية . أى الذين يتعاملون مع البيانات المرسلة من المستخدم ولهذا لا ينبغي أبدا الإعتماد فقط على الواجهة الأمامية .
تخيل مثلا أنك في موقع بنكي تريد تحويل رصيد من حساب إلى حساب أخر . هنا مثلا يتم التحقق من قيمة الرصيد الذي تريد أن ترسله وهو ألا يكون أكبر من الرصيد المتاح لديك . وهنا أنت تستخدم كود جافاسكريبت لمنع هذا الأمر . ولكن تخيل أن بالفعل المستخدم قام بتعطيل هذا الكود وأرسل مبلغ أكبر من الموجود في حسابه فهنا إذا لم يتحقق مطور الواجهة الخلفية من البيانات المرسلة إليه وإعتمد فقط على الواجهة الأمامية إستطاع الاستخدم إختراق النظام وتحويل مبلغ أكبر من المتاح لديه .
لهذا الإهتمام يكون أكبر في الواجهة الخلفية أما الواجهة الأمامية فكل ما يستطيع المستخدم فعله هو تغير البيانات فقط على موقعه وليس شئ أخر فلو قام مثلا بالحصول على id عنصر عرض الرصيد وقام بالتلاعب به فهنا سيتم العرض فقط لديه في الصفحة ولو قام بتحديث الصفحة سيتم عرض الرصيد الأساسي . أما إذا إستطاع التلاعب بالواجهة الخلفية والخادم فحينها بالفعل يمكنه فعل ما يريد.
لهذا في الواجهة الأمامية لا تلقى بالا كبيرا بهذا الأمر والإهتمام ينبغي أن يكون على الواجهة الخلفية .
ولو أردت توجد بعض مكتبات javascript والتي تقوم بتغير أسماء ال id و ال class في كل مرة وذلك لمنع التلاعب وإستخراج البيانات من الموقع الخاص بك وأيضا توجد مكتبات تستخدم لتغير الكود الخاص ب js تماما من حيث وضع أسماء غريبة لجعل الكود غير قابل للقراءة والتلاعب به.
التعليقات