2012-08-22 69 views
2

我的情況有點不同,我使用CKEditor進行編輯和顯示的東西,提交的字符串將只顯示在CKEditor內,無處。xss預防與ckeditor

我想這XSS:

<IMG """><SCRIPT>alert("XSS")</SCRIPT>"> 

我已將此添加到數據庫直接從後端,而不是CKEditor的,因爲我知道這並不重要的CKEditor再進數據庫作爲攻擊者總是可以發送一些原始的http請求而不處理CKEditor。

令我驚訝的CKEditor顯示我:

{cke_protected_1}"> 

所以CKEditor的是做一些,以防止XSS,我意識到了XSS安全可以從客戶端來實現。

我的問題是,如何好是CKEditor的做,如果它是可靠的,如果我只用無屬性標記加

<a><img><table><span><pre> 
(<a> and <table> could be disabled if it makes things easier) 

PS:本CKEditor的使用默認設置。

+0

檢查相同的博客http://tekina.info/xss-filtering-ckeditor/ –

回答

5

您應該在服務器端防止XSS。如果您有這種可能性,請在保存之前刪除任何不安全的數據。

請注意,wysiwyg編輯必須保護包含在編輯過的HTML中的某些JavaScript代碼,以免破壞編輯的內容,其中包括例如隱藏在Wysiwyg模式<script>標記或將onclick事件處理程序更改爲「數據」屬性。

{cke_protected_1}是CKEditor嘗試隱藏<腳本>標記的結果,由於XSS Cheat Sheet中存在一些「hackish」HTML,所以無法完全正常工作。

wysiwyg編輯器中的部分內置保護不應被視爲服務器端對XSS的保護替代。

+0

您的評論是相當普遍的,但無論如何,我打算在服務器端做,我將其標記爲關閉的答案只有這個問題。 – agou