سؤال

لقد صنعت موقعًا إلكترونيًا باستخدام إطار عمل Symfony الشهير. أردت إضافة ميزة التحرير الغنية إليها. ووجدت تحرير Tinymce. ولكن هناك مشكلة في الكوميديا: ماذا عن المستخدم تضمين بعض رمز JavaScript في المحتوى؟ مثل التنبيه ("Hello World").

لقد اختبرت WordPress ، وهو برنامج مدونة مشهور جدًا. يواجه نفس المشكلة. مثال.

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

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

المحلول

لا تسمح لأي JavaScript المدمج في إدخال المستخدم الخاص بك. من السهل التنظيف إما على العميل أو الخادم. احصل على "قائمة بيضاء" من علامات HTML التي تدعمها ، وإزالة أي سمات مستمع حدث من كل ما تسمح به.

نصائح أخرى

من الجيد استخدام مكتبة موجودة لتنظيف إدخال المستخدم الخاص بك ، مشروع HTML Purifier: http://htmlpurifier.org/ يبدو أن الحفاظ عليه وجيد.

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