2014-04-16 31 views
2

我剛剛開始使用貓鼬,我有一個用例,我想要一個「安全」HTML標籤(即<i>,<b>,<u>,其他)的白名單,但我想刪除惡意文件,例如<script>。我目前正在努力尋找一種支持這樣的消毒中間件,但到目前爲止,我發現的所有內容都是validator.js,而且似乎並不支持列入白名單的HTML,只是將字符列入白名單。用貓鼬轉義一些HTML標籤

我的使用情況如下: 我想使用summernote創造一些很好的格式化的東西,依賴於用戶的輸入,保存它們用貓鼬到MongoDB中,然後在其他地方顯示特定HTML。

是否有一些中間件可以幫助我?

回答

0

我與cheerio取得了巨大成功。它提供了一個像api這樣的jquery,所以你可以直接從節點js中選擇html元素。您可以在最終輸出中創建一個您不想要的標籤列表,並且可以創建它們的標籤列表remove()。例如腳本標籤可以這樣刪除

var cheerio = require('cheerio');   
    $ = cheerio.load("<html><body><script></script></body></html>"); 
    $("script").remove(); 

就是這樣。

+1

非常酷。我之前使用過cheerio,但我從來沒有想過在這種情況下使用它。謝謝!只是一個問題,對'.load(「html fragment」)'有一些意義嗎?這是否意味着它不會期望一個完整的HTML文檔? – Seiyria

+0

即使是完整的文檔,它也可以接受任何有效的html字符串。 –