如何禁止所有使用 markdown(PHP 和 JS)的 HTML?

发布于 2024-09-05 08:46:27 字数 498 浏览 7 评论 0原文

我正在使用 PHP markdown 库: http://michelf.com/projects/php-markdown/ 和 Javascript markdown 库: http://attacklab.net/showdown/

我想要禁止所有 HTML,两个版本的 markdown 似乎都无差别地允许它。我的第一次尝试只是在输入 markdown 之前转义所有 html 实体。然而,这也逃脱了 语法,这是非常有用的。

我想转义所有 HTML(不是删除),但保留所有 Markdown 语法。

I'm using the PHP markdown library: http://michelf.com/projects/php-markdown/ and the Javascript markdown library: http://attacklab.net/showdown/

I want to disallow all HTML, both the versions of markdown seem to allow it indiscriminately. My first attempt was simply to escape all html entities before feeding into markdown. However this also escapes the <hyperlink> and <email> syntax, which is very useful.

I'd like to escape all HTML (not remove) but preserve all markdown syntax.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北凤男飞 2024-09-12 08:46:27

你有两个选择。

首先,您实际上可以关心用户提交的 HTML 并对其采取一些措施。尝试 Cal Henderson(因 Flickr 闻名)的 lib_filter 或者更重量级的东西,例如 HTMLPurifier

其次,如果您确实只想中和所有 HTML 但保留特殊语法,请使用 htmlspecialchars ,然后使用正则表达式撤消您要查找的确切字符串的转换。那可能有点毛茸茸的。 ;)

是的,这些都是 PHP 实现,而不是 Javascript。当用户暂时停止输入时,对专用预览生成脚本的 ajax 调用应该足够快。或者让他们按下按钮。

You have two options.

First, you can actually care about the HTML the user submits and do something about it. Try lib_filter by Cal Henderson (of Flickr fame) or maybe something more heavyweight like HTMLPurifier.

Second, if you really only want to neutralize all HTML but keep special syntax, use htmlspecialchars and then undo the conversions for the exact strings you're looking for with regexes. That might be a teeny bit more hairy. ;)

Yes, these are both PHP implementations, not Javascript. An ajax call to a special-purpose preview-generating script when the user stops typing for a moment should be speedy enough. Or make them hit a button.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文