我在一个使用 Markdown 作为语法的 Web 应用程序上工作,我面临的唯一问题是如何在服务器端验证用户输入,以便它实际上是 Markdown 而不是一些可以使用注入(inject)的 XSS 攻击POST 请求或通过禁用 javascript。
我知道 StackOverflow 会这样做,但他们是如何做到的并允许某些 HTML 标签(包括容易受到 XSS 攻击的图像)?任何可以提供帮助的开源包(示例表示赞赏)。
因为我听说 StackOverflow 使用它,所以我会尝试一下 Pagedown作为客户端验证器。
最佳答案
您需要投资 ca。一到两周的正确编码,并获得一些可以清理传入 HTML(通过 Markdown)的 tagsoup 解析器/处理程序。
我强烈建议使用三遍验证和处理方案:
- 混合模式:将作为 Markdown 文档一部分的 HTML 标签列入白名单。
- Markdown 解析器:将 Markdown 转换为 HMTL
- HTML 模式:将作为 HTML 文档的 HTML 标记列入白名单。
然后就可以输出了。存储 Markdown 源和“支持的”HTML 数据,这样您就不需要为每个显示操作都执行此操作。
关于php - 在 PHP 应用程序中正确使用 markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998894/