سؤال

لدي ASP.NET MVC التطبيق و أنا باستخدام CKEditor من أجل إدخال النص.يجب إيقاف تشغيل التحقق من صحة المدخلات لذلك HTML تم إنشاؤها من CKEditor يمكن أن تنتقل إلى وحدة تحكم العمل.أنا ثم تبين دخلت HTML على صفحة ويب.

لدي فقط بعض الأزرار على CKEditor تمكين ، ولكن من الواضح أن شخص ما يمكن أن ترسل أي نص يريدون أسفل.كنت تريد أن تكون قادرة على أن تظهر HTML على الصفحة بعد أن المستخدم قد دخل بها.كيف يمكنني التحقق من صحة المدخلات ، ولكن لا يزال تكون قادرة على أن تظهر بعض الأشياء التي هي تمكين في المحرر ؟

فإذا أود أن تطهير كل شيء باستثناء عدد قليل من الأشياء الأساسية مثل جريء, مائل, القوائم والروابط.هذا يحتاج إلى القيام به من جانب الخادم.

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

المحلول

ماذا عن antixss.?

نصائح أخرى

انظر إجابتي الكاملة هنا من سؤال مماثل:

لقد وجدت أن استبدال أقواس الملاك مع قوسين ملاك مشفرة يحل معظم المشاكل

يمكنك إنشاء "القائمة البيضاء" من نوع html العلامات كنت ترغب في السماح.يمكنك أن تبدأ من خلال HTML ترميز كل شيء.ثم استبدال سلسلة من "سمح" متواليات ، مثل:

"&lt;strong&gt;" and "&lt;/strong&gt;" back to "<strong>" and "</strong>"
"&lt;em&gt;" and "&lt;/em&gt;" back to "<em>" and "</em>"
"&lt;li&gt;" and "&lt;/li&gt;" back to ... etc. etc.

لأشياء مثل علامة ، يمكن اللجوء إلى التعبير العادي (منذ كنت تريد السمة href على أن يسمح أيضا).كنت لا تزال تريد أن تكون حذرا حول XSS;شخص آخر أوصى بالفعل AntiXSS.

عينة Regexp لتحل محل الكلمات:

&lt;a href="([^"]+)"&gt;

ثم استبدال كما

<a href="$1">

حظا سعيدا!

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