繁体   English   中英

在PHP应用程序中正确使用markdown

[英]Using markdown properly in a PHP application

我使用Markdown作为其语法的Web应用程序,我面临的唯一问题是如何验证服务器端的用户输入,以便它实际上是Markdown而不是可以使用POST请求注入的某些XSS攻击或通过禁用JavaScript。

我知道StackOverflow会这样做,但他们是如何做到这一点并允许某些HTML标签包括易受XSS攻击的图像? 任何可以帮助的开源软件包(例子赞赏)。

我听说StackOverflow使用它,我将尝试使用Pagedown作为客户端验证器。

你需要投资ca. 一到两个星期的正确编码,并得到一些tagoup解析器/处理程序finsihed可以清理崩溃的HTML(通过Markdown)。

我强烈建议三通验证和处理方案:

  1. 混合模式:白名单包含作为Markdown文档一部分的HTML标记。
  2. Markdown Parser:将Markdown转换为HMTL
  3. HTML模式:作为HTML文档的白名单HTML标记。

然后你可以输出。 存储Markdown源和“支持的”HTML数据,因此您不需要为每个显示操作执行此操作。

Markdown允许任意HTML包含在其中。 由于这包括<script>元素,因此您可以使用也是XSS攻击的有效Markdown。

通过Markdown解析器运行传入的数据以获取HTML,然后将其视为任何其他用户提交的HTML(将其传递给将白名单应用于元素和属性的HTML解析器)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM