用户评论中的降价(使用适当的消毒和 Youtube 视频)
Markdown in user comments (with proper sanitize and Youtube videos)
我一直在决定如何进行 Markdown 处理和 Html 清理。我有 comments/articles:
的用户需求
- 用户应该能够使用 Markdown 语法
- 用户应该能够 post youtube 视频/yandex.music 音频
- 当然,用户不应该被信任,他们的输入应该针对各种攻击进行验证
- 特别是,我不想让用户提交任意 iframe
我什至提交了对 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-转义一切,然后Markdig。
根据同一篇文章,这也不安全。
Markdig,然后 HtmlSanitizer
这个消毒剂有适当的挂钩(post-process 节点),但我担心这个库的支持,尤其是主要依赖 - AngleSharp 支持(它有活跃的可重现崩溃,并且似乎正在积极开发 w/o 提供稳定的 API,因此 HtmlSanitizer 似乎很难继续使用。
那么,有什么建议可以实现这个目标吗?我不相信只有我一个人遇到这个问题,我确实希望 应该 可以通过 .net 中的现有库解决。如果需要,我准备在上游贡献一些功能,但我还没有准备好分叉任何东西。 :-)
这通过添加 HtmlRuleSanitizer 来解决,特别是通过添加 IHtmlAttributeSanitizer
接口和 SanitizeAttributes
方法。
我一直在决定如何进行 Markdown 处理和 Html 清理。我有 comments/articles:
的用户需求- 用户应该能够使用 Markdown 语法
- 用户应该能够 post youtube 视频/yandex.music 音频
- 当然,用户不应该被信任,他们的输入应该针对各种攻击进行验证
- 特别是,我不想让用户提交任意 iframe
我什至提交了对 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-转义一切,然后Markdig。
根据同一篇文章,这也不安全。
Markdig,然后 HtmlSanitizer
这个消毒剂有适当的挂钩(post-process 节点),但我担心这个库的支持,尤其是主要依赖 - AngleSharp 支持(它有活跃的可重现崩溃,并且似乎正在积极开发 w/o 提供稳定的 API,因此 HtmlSanitizer 似乎很难继续使用。
那么,有什么建议可以实现这个目标吗?我不相信只有我一个人遇到这个问题,我确实希望 应该 可以通过 .net 中的现有库解决。如果需要,我准备在上游贡献一些功能,但我还没有准备好分叉任何东西。 :-)
这通过添加 HtmlRuleSanitizer 来解决,特别是通过添加 IHtmlAttributeSanitizer
接口和 SanitizeAttributes
方法。