在飞行中解析降价

时间:2014-04-01 18:24:34

标签: javascript php security markdown pagedown

我想在我的论坛上实施降价。

我研究了许多可能的方法,我会怎么做,这就是我的想法:

一种简单的方法是在客户端进行向下翻页,在服务器上进行php-markdown。

我的方法是将纯降价保存到数据库,并在显示转换为HTML时(使用向下翻页)。由于我已经为我的服务器端(HTML元素白名单)和所有必要的工作人员提供了安全层,因此我没有看到任何遗失。

在这种情况下我赢了什么?好吧,我必须修改pagedown以使用自定义按钮和模式。对我来说,维护php和JavaScript都很困难。

我的问题是:这是一个很好的方法吗? 打破这个问题:

  1. 客户端加载大约有30个严重开销 发布并将其转换为HTML(性能)
  2. 有了我检查元素白名单的想法,有没有 我需要知道的安全问题? (安全)

4 个答案:

答案 0 :(得分:4)

我不会使用客户端降价引擎。从一些快速谷歌看来,它是非常CPU密集型的。加载30个帖子会增加相当多的开销。

如果您将MD存储在数据库中,即时呈现为HTML,则使用一些可以很好地工作的缓存(memcached或redis)。

关于安全性问题good read here,它需要一些额外的清理删除脚本/链接/重定向等。

进一步阅读

答案 1 :(得分:2)

不建议在@Lex声明的情况下从客户端转换降价。相反,您可以使用一些在线服务为您转换降价顶部HTML 看看http://daringfireball.net/projects/markdown/dingus。您可以使用curl或其他东西向网站发布降价,然后废弃网站以获取html部分。 您还可以在此处查看http://parsedown.org/

答案 2 :(得分:2)

您有两种选择建议:

  • Strapdown - 允许在没有服务器端处理的情况下创建markdown文档,正如您可以在页面上看到的那样,即使没有代码,只需使用静态文件
  • markdown-js - 允许使用客户端处理(javascript)创建markdown文档

答案 3 :(得分:1)

我是这样做的:

在db中保存markdown代码并在渲染时将结果缓存到文件(文件,Memcached或任何所需的缓存存储引擎)中。这样我就可以将原始文件保存在数据库中,并且我不会浪费资源在每次页面访问时编译markdown,而是提供缓存文件,直到它因为更改而过期或删除。