用户评论中的Markdown(使用正确的清理和Youtube视频)

时间:2018-05-26 09:48:54

标签: c# markdown html-sanitizing

我坚持决定如何进行Markdown处理和Html清理。我对评论/文章有这个用户要求:

  1. 用户应该能够使用Markdown语法
  2. 用户应该能够发布youtube视频/ yandex.music音频
  3. 当然,用户不值得信任,他们的输入应该针对所有类型的攻击进行验证
  4. 特别是,我不想让用户提交任意iframe
  5. 我甚至向markdig库提交了修复,以支持媒体扩展中的yandex.music。但是现在我被卡住了。有我探索的选项:

    Markdig,然后是HtmlRuleSanitizer

    我已将Markdig配置为将youtube / yandex.music转换为iframe,而不是使用HtmlRuleSanitizer进行清理。 HtmlRuleSanitizer没有选项仅允许iframe用于列入白名单的域名 - 因此它会删除youtube.com,或者允许evilsite.com。我提交了suggestion但未收到任何答复。

    HtmlRuleSanitizer,然后是Markdig

    据我所知,这将允许各种XSS攻击 - 因为Markdown-to-Html转换为inherently unsafe

    Html-escape all,然后是Markdig。

    根据同一篇文章,这也不安全。

    Markdig,然后是HtmlSanitizer

    这个清理程序有适当的钩子(后处理节点),但是我担心这个库的支持,尤其是主要依赖 - AngleSharp支持(它有活跃的可重现性崩溃,似乎正在积极开发中) o提供稳定的API,因此HtmlSanitizer似乎很难继续使用。)

    那么,有什么建议我可以实现这个目标吗?我拒绝相信我只是这个问题的一个人,我希望应该可以解决.net中现有的库。如果需要的话,我已准备好向上游贡献一些功能,但我还没准备好任何东西。 : - )

0 个答案:

没有答案