我有一個ASP.NET MVC應用程序,我正在使用CKEditor進行文本輸入。我關閉了輸入驗證,以便從CKEditor創建的HTML可以傳遞到控制器操作中。然後我在網頁上顯示輸入的HTML。使用富文本編輯器時的輸入驗證
我只在CKEditor上啓用了某些按鈕,但顯然有人可以發送他們想要的任何文本。我希望能夠在用戶輸入後在頁面上顯示HTML。我如何驗證輸入,但仍然能夠顯示在編輯器中啓用的少數幾件事情?
所以基本上我想除了一些關鍵的東西,比如粗體,斜體,列表和鏈接,都要消毒。這需要在服務器端完成。
AntiXss.GetSafeHtmlFragment將是一個開始。這從HTML中刪除任何腳本。雖然HTML怎麼樣?任何HTML都可以輸入。也許這真的不是問題,只有XSS是。我不太熟悉這方面的最佳做法。我很少需要用戶輸入不會被編碼的東西。 – 2009-10-05 18:36:38
那麼,「安全」HTML的主要缺點是它可能是畸形的。在這種情況下,Tidy可能是一個解決方案。 – 2009-10-06 19:12:01