سؤال

لقد بدأت في إعطاء المزيد من الاهتمام بقليل لجعل JavaScript وتحط أجاكس بأمان. وهو أكثر الموصى بها:

  • العمل على دمج التدهور الرشمني في التعليمات البرمجية الحالية (يمكن أن يكون صعبا) أو
  • تطوير مجموعات مختلفة من الصفحات للمستخدمين غير JS.

أنا مئز نحو مجموعات مختلفة من الصفحات، لأنني أشعر أنها أسهل وأحصل على تقديم أفضل النتائج الممكنة لكل نوع مستخدم (js-enabled أو js-disabled). هل توافق معي، وإذا لم يكن كذلك، لماذا لا توافق؟

أنا قلق أيضا بشأن محاولات القرصنة. على سبيل المثال، يحصل Hacker على إصدار JS-تمكينه، ثم تعطيل JS. أي أفكار حول هذه النقطة؟ أنا لا أعرف الكثير عن القرصنة، ولكن هل يمكن أن يكون هذا مصدر قلق أمني إذا ذهبت مع الإصدارات المنفصلة؟

شكرا لك مقدما

هل كانت مفيدة؟

المحلول

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

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

نصائح أخرى

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

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

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

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

تم تنفيذه على هذين الموقعين (الذي أعرفه) http://wbhomes.com.au. و http://www.balupton.com.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top