بعض كائنات البيانات الخاصة بي تستخدم HTML جاهز مع علامات عادية محاطة بـ "<" و ">". يحول Moustache.js هذه إلى <
و >
. يؤدي تنفيذ String.replace(/>/g,'>').replace(/</g,'<')
على الناتج الناتج إلى حدوث الكثير من التأخير.
هل هذا سلوك متوقع؟ هل يمكن تغييره للاحتفاظ بـ <و>؟ هل يجب الهروب من هذه الرموز بطريقة ما؟
دائمًا ما يؤدي إخراج البيانات باستخدام {{data}}
(شارب مزدوج) إلى تجاوز أحرف html. استخدم {{{data}}}
(شارب ثلاثي) إذا كنت لا تريد أن يهرب.
رائع! لم أكن أعرف ذلك. شكرا الظافر.
@ amper5and : لاحظ أنه إذا كنت تستخدم {{{ data }}}
، فستكون مسؤوليتك _تتأكد من أنك لا تنشئ ثغرات XSS أو CSRF ، لأنك تتجاوز الآلية المصممة لمنع ذلك :)
أيضًا ، أعتقد أن بناء الجملة {{&data}}
مكافئ ، على الرغم من أنني لم أستخدمه مطلقًا.
هذا رائع !!!
التعليق الأكثر فائدة
دائمًا ما يؤدي إخراج البيانات باستخدام
{{data}}
(شارب مزدوج) إلى تجاوز أحرف html. استخدم{{{data}}}
(شارب ثلاثي) إذا كنت لا تريد أن يهرب.