我正在管理一个部分人可以提交自己的文章和条目的博客。我希望他们能够通过HTML嵌入视频(以及选择粗体,斜体等文字)。如何在维护网站安全的同时做到这一点?HTML转义只有一些字符和字符的组合?
如果我没有HTML转义的实际文章空间,一个公开的评论会毁了我的网站。有没有办法有选择地逃避某些字符组合?
编辑;希望没有写我自己的解析器。我只是想简单的东西,如<b>
,<i>
等标签非转义,以及视频和链接嵌入。
我正在管理一个部分人可以提交自己的文章和条目的博客。我希望他们能够通过HTML嵌入视频(以及选择粗体,斜体等文字)。如何在维护网站安全的同时做到这一点?HTML转义只有一些字符和字符的组合?
如果我没有HTML转义的实际文章空间,一个公开的评论会毁了我的网站。有没有办法有选择地逃避某些字符组合?
编辑;希望没有写我自己的解析器。我只是想简单的东西,如<b>
,<i>
等标签非转义,以及视频和链接嵌入。
我使用什么SO使用。它是开源的,并且有许多语言的解析器。
名称是WMD和问题"Where's the WMD editor open source project?"有一些QA材料概述此编辑器。
问题"running showdown.js serverside to conver Markdown to HTML (in PHP)"有一些QA材料概述了PHP中的一些Markdown库。
小心:要以安全的方式运行此操作,您需要在服务器端执行javascript代码,例如通过node.js *或*你必须在PHP中有一些compatbile,比如一个类似于该扩展的javascript代码的降价库。将第二部分添加到答案中也许会有用。 – hakre
@hakre - 降价是很常见的,所有的语言都有解析器。很容易找到一个。我将在答案中添加到PHP的链接 –
要做到这一点,大多数网站(如SO)使用的最简单的方法是引入您自己的特殊标记,然后将其转换为您想要的功能。
例如,SO使用星号(*
)以斜体和(**
)大胆(编辑:旁边的HTML标签<b></b>
本身,看这个答案的来源)。
其他网站使用[b]
和[i]
标签。您可以使用[video=http://myvideo.com]
标签,然后您的PHP将其转换为适当的HTML实体。
您可以安全地HTML转义一切。您的视频的网址不会受到您想要执行的任何转义操作的影响。
你不会说你正在使用什么语言,但有可能你不必编写自己的解析器。 HTML解析是一个解决的问题,软件包比比皆是,为你做到这一点。 –
我将问题标记为PHP和HTML。 – gator
然后从这里开始:http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php –