【问题标题】:Escape some HTML tags with mongoose使用 mongoose 转义一些 HTML 标签
【发布时间】:2014-05-30 15:11:18
【问题描述】:

我刚刚开始使用 mongoose,并且我有一个用例,我想要一个“安全”HTML 标签(即<i><b><u> 等)的白名单,但是我想删除恶意的,比如<script>。我目前正在尝试找到一个支持此类功能的净化中间件,但到目前为止,我发现的只是validator.js,它似乎不支持将 HTML 列入白名单,只支持将字符列入白名单。

我的用例如下: 我想使用 summernote 创建一些依赖用户输入的格式良好的东西,使用 mongoose 将它们保存到 mongodb,然后在其他地方显示特定的 HTML。

是否有一些中间件可以帮助我解决这个问题?

【问题讨论】:

    标签: node.js mongodb mongoose html-sanitizing


    【解决方案1】:

    我在cheerio 上取得了巨大的成功。它提供了一个类似 api 的 jquery,因此您可以直接从节点 js 中选择 html 元素。您可以在最终输出中创建一个您不想要的标签列表并remove() 它们。例如脚本标签可以像这样删除

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

    就是这样。

    【讨论】:

    • 非常酷。我以前用过cheerio,但我从来没有想过在这种情况下使用它。谢谢!只是一个问题,.load("html fragment") 有什么意义吗?这是否意味着它不需要完整的 HTML 文档?
    • 它可以接受任何有效的html字符串,甚至是完整的文档。
    猜你喜欢
    • 1970-01-01
    • 2012-04-21
    • 2023-03-26
    • 2016-05-30
    • 1970-01-01
    • 2022-09-24
    • 2020-07-05
    • 2010-10-16
    • 2011-11-12
    相关资源
    最近更新 更多