在Rails中消除Markdown?

Tom*_*man 7 xss markdown sanitization ruby-on-rails

用户可以在我的应用程序中编辑"文章".每篇文章都在DB中掌握并作为Markdown发送到客户端 - 我使用Javascript将其转换为HTML客户端.

我这样做是为了当用户想要编辑文章时他可以编辑并将Markdown直接发回服务器(因为它已经在页面上).

我的问题是如何消毒我发送给客户端的Markdown - 我可以使用Rails的sanitize帮手吗?

此外,对这种方法的一般想法?我想到的另一个策略是渲染和清理服务器上的HTML,并仅在用户想要编辑文章时将Markdown拉到客户端.

ndp*_*ndp 4

我遵循几个原则:

  • 存储用户输入的内容
  • 对展示品进行消毒
  • 只发送必要的数据

这让我想到了您建议的替代架构:

  • 将 Markdown 存储在数据库中
  • 渲染、降价/清理并将 HTML 发送到浏览器
  • 当(并且如果)用户选择“编辑”时,通过 AJAX 从服务器请求原始 Markdown
  • 如果我在编辑期间有“预览”视图,我也会尝试使用服务器来渲染它(尽管如果速度太慢,您可能需要删除此步骤)。不过,在预览期间,清理可能并不那么重要。

这就是我的方法,而且效果非常好。