سؤال

أنا بدأت المشروع الذي سيتم العامة التي تواجه استخدام asp.net mvc.أعرف أن هناك حوالي مليار php, python و ruby html مطهرات هناك ، ولكن هل لديها بعض المؤشرات إلى أي شيء جيد في .الشبكة ؟ ما هي الخبرات الخاصة بك مع ما هو هناك ؟ أنا أعرف ستاكوفيرفلوو هو موقع عمله في asp.net التي تسمح وسوم HTML ، ماذا تستخدم ؟

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

نصائح أخرى

HtmlSanitizer

المصدر: https://github.com/mganss/HtmlSanitizer

وA المطهر قوية إلى حد ما. كان يفهم ويمكن تنظيف الأنماط المضمنة، ولكن لم يكن لديك محلل التي يمكن التعامل مع <نمط> كتل، لذلك يجرد منها. انها بالتأكيد حتى وربما أبعد من المستوى الذي مايكروسوفت AntiXSS كان في، قبل أن يتركوها.

HtmlRuleSanitizer

بناء على سؤالك علي الاقتراحات التالية:

  • تريد السماح الحرة شكل HTML ، لذلك تحتاج إلى حل تكون قادرة على تحديد مجموعة من العلامات والسمات و/أو الطبقات CSS والتي سمحت.
  • من خلال السماح الحرة شكل HTML فمن المرجح أنه سيكون لديك أيضا للتعامل مع تالف HTML لأن المستخدمين تجعل الأخطاء (متعمدة أو لا).وبالتالي تحتاج إلى حل مبني على التسامح محلل مثل Html Agility Pack.
  • أنت تريد أن تأخذ الأبيض قائمة النهج لأن الأسود قائمة المطهر لا يحمي الخاص بك من أي HTML جديد المواصفات.وبالإضافة إلى ذلك فإنه من الصعب جدا ضمان أن قائمة سوداء تغطي جميع الحالات في المقام الأول بسبب حجم مواصفات HTML.

أنا واجهت نفس المشكلة و بنيت HtmlRuleSanitizer وهي القائمة البيضاء القاعدة مستندة إلى HTML المطهر على رأس Html Agility Pack.

وهناك c# الإصدار هنا

وهنا هو واحد بنيت من قبل مايكروسوفت. http://wpl.codeplex.com/

var cleanHtml = Sanitizer.GetSafeHtml(unsafeHtml);

يمكننا أيضا استخدام

AntiXss.GetSafeHtmlFragments

تطهير الإدخال عن طريق تحليل HTML جزء إلى استخدام هذا المطهر الغنية المحتوى للتأكد من أنه لا محتوى أي الضارة النصي أنها آمنة ليتم عرضها على المتصفح.من أجل إدخال النص(وليس المحتوى الغني) استخدام AntiXss.HtmlEncode أو أي ما يعادل html التشفير.هنا هو عينة غنية المحتوى.

 string mal = "<IMG NAME = 'myPic' SRC = 'images / myPic.gif' onerror='alert(1)' onerror='alert(1) ><div bottommargin = 150 ondblclick = 'alert('double clicked!')' >< p > Double - click anywhere in the page.</p> </div> ";
                var cleanHtml = Sanitizer.GetSafeHtmlFragment(mal);
                Console.Write(cleanHtml);
                Console.Read(); 

ملاحظة:تحميل AntiXSS مكتبة fron nugetpackage مدير وتشمل هذه namesapce مايكروسوفت.الأمن.التطبيق في سوسي رمز;

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