Html 什么标记语言用于格式丰富的内容?

Html 什么标记语言用于格式丰富的内容?,html,formatting,markdown,markup,bbcode,Html,Formatting,Markdown,Markup,Bbcode,在开发基于web的应用程序时,如果希望允许用户输入格式丰富的文本,则必须选择如何允许该输入。创建了许多不同的标记语言,因为清理HTML可能更加困难 各种不同标记语言的优缺点是什么,如: 或者换句话说,在选择使用特定的标记语言时,你会考虑哪些因素。 MaskDead,BBCode,Buffic,MyaWiKi标记都是基本相同的一般概念,所以我真的只是把它分为两类:HTML和纯文本标记。 HTML 处理HTML的方法是,内容已经是web内容的“可呈现”形式。这很好,节省了处理时间,而

在开发基于web的应用程序时,如果希望允许用户输入格式丰富的文本,则必须选择如何允许该输入。创建了许多不同的标记语言,因为清理HTML可能更加困难

各种不同标记语言的优缺点是什么,如:


或者换句话说,在选择使用特定的标记语言时,你会考虑哪些因素。

MaskDead,BBCode,Buffic,MyaWiKi标记都是基本相同的一般概念,所以我真的只是把它分为两类:HTML和纯文本标记。 HTML 处理HTML的方法是,内容已经是web内容的“可呈现”形式。这很好,节省了处理时间,而且是一种易于解析的语言。几乎任何一种语言都有几十个库来处理HTML内容,将HTML转换为其他格式,等等。主要的缺点是,由于早期web时代的松散标准,HTML可能会有令人难以置信的变化,在接受用户的HTML时,您不能总是依赖合理的输入。如前所述,整理或整理HTML通常非常困难,特别是因为它无法像XML那样遵循正常的标记规则(即,不正确关闭的标记很常见)

纯文本标记 经常使用此类别的原因如下:

  • 易于从一个源解析为多个表单-PDF、HTML、RTF
  • 如果以后需要,内容存储在可读的纯文本中(通常比原始HTML容易阅读),而不需要从HTML中提取
  • 遵循特定的定义规则,其中HTML可能是变量和非结构化的
  • 允许您强制使用在许多情况下比简单地允许完整HTML更合适的内容格式子集
  • 除了强制HTML的一个子集外,还可以轻松清理输入并防止跨站点脚本问题等
  • 以抽象格式保存“原始”数据意味着在以后的某个日期,如果您想将站点从HTML4转换为XHTML,您只需要更改解析代码。对于HTML格式的用户输入,您现在不得不将所有HTML单独转换为XHTML,正如HTML Tidy所示,这并不总是一项简单的任务。类似地,如果在某个时候出现了一种新的标记语言,或者您需要转移到另一种格式(RTF、PDF、TeX),则文本格式选项的抽象受限子集会使这项任务变得简单得多
底线是用户输入的用途。如果您计划保留数据,并且可能需要改变格式等,那么使用谨慎的抽象格式来存储信息是有意义的。若您出于任何原因需要手动处理原始数据,那个么若该格式易于人类阅读,那个么您将获得额外的积分。如果您只在网页(或报告的HTML文档等)中显示内容,而不关心转换或将来校对,那么将其存储在HTML中是一种合理的做法。

杰夫在codinghorror.com上,当时他们正处于组装的初始阶段。我认为这是一本值得一读的书。

“许多不同的标记语言已经被创建,因为清理HTML可能更加困难。”


真的吗?这有多困难?有一些函数可以删除潜在危险的属性或标记,并在将HTML输入数据库或文件之前对其进行验证。你能给我举个例子说明清理HTML是多么困难吗

@netrox数据库不是问题,浏览器输出是问题

唯一需要关注的是最终呈现,用户插入的HTML可能会破坏最终呈现。例如,用户可以打开一个
  • 标记,但从不关闭它,这取决于页面的结构,可能会破坏随后的整个布局。或者另一个例子是打开一个
    标记而不关闭它,使所有剩余的内容变为粗体

    因此,不仅必须验证允许的标记,而且如何确切地允许某些标记而不允许其他标记?例如,因为使用PHP方法很容易阻止解析所有HTML标记,但是当涉及到允许某些标记时,您必须寻找其他方法。有一个PHP函数可以删除(完全删除)不允许的标记,但这意味着以一种不好的方式更改用户的内容,阻止用户发布简单的代码,例如(要共享/显示的代码,而不是要处理的代码)

    除了破坏布局外,还必须考虑XSS攻击,比如将JavaScript插入到链接的HREF属性中,例如,可以将用户重定向到另一个站点。请参阅以下可能的XSS攻击的详细列表:


    正如您所看到的,阻止所有HTML标记被解释是非常容易的,但是只阻止部分标记要复杂得多。要了解这一点,您可以看看庞大的“”框架,它的唯一目的是允许一些HTML标记,并确保输出的HTML有效(即不会破坏页面)并且没有XSS攻击。

    这()也是您所指的文章吗?是的,几周后,他做了一次跟进。猴子:请在你的答案中添加以下链接:)