c# - 用户评论中的降价(带有适当的清理和 Youtube 视频)
问题描述
我坚持决定如何进行 Markdown 处理和 Html 清理。我对评论/文章有这个用户要求:
- 用户应该能够使用 Markdown 语法
- 用户应该能够发布 youtube 视频 / yandex.music 音频
- 当然,用户不应该被信任,他们的输入应该针对所有类型的攻击进行验证
- 特别是,我不想让用户提交任意 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 中的现有库来解决。如果需要,我准备在上游贡献一些功能,但我还没有准备好分叉任何东西。:-)