هل يجب أن أقوم بتطهير ترميز HTML لنظام إدارة المحتوى المستضاف؟

StackOverflow https://stackoverflow.com/questions/176195

  •  05-07-2019
  •  | 
  •  

سؤال

إنني أتطلع إلى بدء خدمة مستضافة تشبه CMS للعملاء.

كما هو الحال، سيتطلب الأمر من العميل إدخال نص سيتم تقديمه لأي شخص يأتي لزيارة موقعه.أخطط لاستخدام Markdown، ربما بالاشتراك مع WMD (معاينة تخفيض السعر المباشرة التي يستخدمها SO) للكتل الكبيرة من النص.

الآن، هل يجب أن أقوم بتطهير مدخلاتهم لـ html؟نظرًا لأنه لن يكون هناك سوى عدد قليل من الأشخاص الذين يقومون بتحرير "CMS" الخاص بهم، وجميع العملاء الذين يدفعون، هل يجب أن أقوم بإزالة HTML السيئ، أم هل يجب أن أتركهم ينطلقون بشكل جامح؟ففي نهاية المطاف، هذا هو "موقعهم"

يحرر: السبب الرئيسي وراء قيامي بذلك هو السماح لهم باستخدام جافا سكريبت الخاص بهم، وأن يكون لديهم CSS وdivs خاصين بهم، وما ليس للإخراج

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

المحلول

لماذا لن يمكنك تطهير المدخلات؟

إذا لم تقم بذلك، فأنت تدعو إلى الكارثة - إما لعميلك أو لنفسك أو لكليهما.

نصائح أخرى

سؤالك يقول:

"يحرر:السبب الرئيسي وراء قيامي بذلك هو السماح لهم باستخدام جافا سكريبت الخاص بهم، وأن يكون لديهم CSS و divs الخاص بهم وما ليس للإخراج".

إذا سمحت للمستخدمين بتوفير جافا سكريبت عشوائيًا، فإن تنقية المدخلات لا تستحق الجهد المبذول.تعريف البرمجة النصية عبر المواقع (XSS) هو في الأساس "يمكن للمستخدمين توفير JavaScript وبعض المستخدمين سيئون".

الآن، تسمح بعض مواقع الويب للمستخدمين بتوفير JavaScript وتخفف المخاطر بإحدى طريقتين:

  1. قم باستضافة أنظمة إدارة المحتوى (CMS) الخاصة بالمستخدم الفردي ضمن نطاق مختلف.مدون وTumblr (على سبيل المثال.مدونتي.blogspot.com مقابل.blogger.com) قم بذلك لمنع قوالب المستخدم من سرقة ملفات تعريف الارتباط الخاصة بالمستخدم الآخر.عليك أن تعرف ما تفعله ولا تستضيف أبدًا أيًا من محتوى المستخدم ضمن المجال الجذر.
  2. إذا لم تتم مشاركة محتوى المستخدم مطلقًا بين المستخدمين، فلا يهم ما هو النص الذي يقدمه المستخدمون الضارون.ومع ذلك، فإن أنظمة إدارة المحتوى (CMS) تتعلق بالمشاركة، لذا ربما لا ينطبق هذا هنا

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

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

ستحمي أيضًا الموظفين الساخطين مرة أخرى، أو تهاجم هجمات العملاء، أو أي نوع آخر من السلوك الغبي.

يجب عليك دائمًا التعقيم، بغض النظر عن المستخدمين أو المشاهدين.

على الأقل، قم بتحليل إدخالهم للسماح فقط بمجموعة فرعية "آمنة" معينة من علامات HTML.

أعتقد أنه يجب عليك دائمًا تعقيم المدخلات.يستخدم معظم الأشخاص نظام إدارة المحتوى (CMS) لأنهم لا يريدون إنشاء موقع الويب الخاص بهم من البداية ويريدون الوصول بسهولة لتحرير صفحاتهم.على الأرجح لن يحاول هؤلاء المستخدمون كتابة نص من شأنه أن يتم تطهيره، ولكن من خلال الحماية منه فإنك تحمي مستخدميهم.

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