首页 > 解决方案 > 用户评论中的降价(带有适当的清理和 Youtube 视频)

问题描述

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

  1. 用户应该能够使用 Markdown 语法
  2. 用户应该能够发布 youtube 视频 / yandex.music 音频
  3. 当然,用户不应该被信任,他们的输入应该针对所有类型的攻击进行验证
  4. 特别是,我不想让用户提交任意 iframe

我什至向库提交了修复以markdig支持媒体扩展中的 yandex.music。但现在我被困住了。有我探索的选项:

Markdig,然后是 HtmlRuleSanitizer

我配置Markdig为将 youtube/yandex.music 转换为 iframe,而不是使用HtmlRuleSanitizer. HtmlRuleSanitizer没有选项只允许 iframe 用于白名单域 - 所以它要么会删除youtube.com,要么会允许evilsite.com. 我提交了建议,但没有收到任何答复。

HtmlRuleSanitizer,然后是 Markdig

据我所知,这将允许各种 XSS 攻击——因为 Markdown 到 Html 的转换本质上是不安全的。

Html 转义一切,然后 Markdig。

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

Markdig,然后是 HtmlSanitizer

这个消毒剂有适当的钩子(后处理节点),但我担心这个库的支持,特别是主要依赖项 - AngleSharp 支持(它有活跃的可重现崩溃,并且似乎正在积极开发中,不提供稳定的API,所以 HtmlSanitizer 似乎很难坚持下去)。

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

标签: c#markdownhtml-sanitizing

解决方案


推荐阅读